Ticket #13571: 20200404-repeated-access.patch

File 20200404-repeated-access.patch, 1.3 KB (added by Klaas de Waal, 7 months ago)

Repeatedly access m_encoderLink causes crash

  • mythtv/programs/mythbackend/mainserver.cpp

    diff --git a/mythtv/programs/mythbackend/mainserver.cpp b/mythtv/programs/mythbackend/mainserver.cpp
    index 76e3702a44..2cfdf22b2e 100644
    a b void MainServer::DoHandleStopRecording( 
    29192919
    29202920            elink->StopRecording();
    29212921
     2922            // Repeated access of m_encoderList after StopRecording causes crash
     2923            for (int i=0; i<100000; i++)
     2924            {
     2925                int j = 0;
     2926                for (auto iter2 = m_encoderList->begin(); iter2 != m_encoderList->end(); ++iter2)
     2927                {
     2928                    j++;
     2929                    EncoderLink *elink2 = *iter2;
     2930                    if (elink2->IsLocal())
     2931                    {
     2932                        (void) iter2.key();
     2933                    }
     2934                }
     2935            }
     2936
    29222937            while (elink->IsBusyRecording() ||
    29232938                   elink->GetState() == kState_ChangingState)
    29242939            {
    void MainServer::DoHandleStopRecording( 
    29302945                if (m_sched)
    29312946                    m_sched->UpdateRecStatus(&recinfo);
    29322947            }
     2948
     2949            // End loop after recording found
     2950            break;
    29332951        }
    29342952    }
    29352953    TVRec::s_inputsLock.unlock();