Ticket #5564: pginfo-crashes.patch

File pginfo-crashes.patch, 2.0 KB (added by Kees Cook <kees@…>, 12 years ago)

fix crashes on missing pginfo look-ups

  • mythtv/programs/mythbackend/mainserver.cpp

     
    34363436    ProgramInfo *pginfo = ProgramInfo::GetProgramFromRecorded(chanid,
    34373437                                                              startdt);
    34383438
    3439     if (commbreak)
    3440         pginfo->GetCommBreakList(markMap);
    3441     else
    3442         pginfo->GetCutList(markMap);
     3439    if (pginfo) {
     3440        if (commbreak)
     3441            pginfo->GetCommBreakList(markMap);
     3442        else
     3443            pginfo->GetCutList(markMap);
    34433444
    3444     for (it = markMap.begin(); it != markMap.end(); ++it)
    3445     {
    3446         rowcnt++;
    3447         QString intstr = QString("%1").arg(it.data());
    3448         retlist << intstr;
    3449         encodeLongLong(retlist,it.key());
     3445        for (it = markMap.begin(); it != markMap.end(); ++it)
     3446        {
     3447            rowcnt++;
     3448            QString intstr = QString("%1").arg(it.data());
     3449            retlist << intstr;
     3450            encodeLongLong(retlist,it.key());
     3451        }
    34503452    }
    34513453
    34523454    if (rowcnt > 0)
     
    35083510    QDateTime startdt;
    35093511    startdt.setTime_t((uint)atoi(starttime));
    35103512    QStringList retlist;
    3511     long long bookmark;
     3513    long long bookmark = -1;
    35123514
    35133515    ProgramInfo *pginfo = ProgramInfo::GetProgramFromRecorded(chanid,
    35143516                                                              startdt);
    3515     bookmark = pginfo->GetBookmark();
     3517    if (pginfo) bookmark = pginfo->GetBookmark();
    35163518
    35173519    encodeLongLong(retlist,bookmark);
    35183520
     
    35503552
    35513553    ProgramInfo *pginfo = ProgramInfo::GetProgramFromRecorded(chanid,
    35523554                                                              startdt);
    3553     pginfo->SetBookmark(bookmark);
     3555    if (pginfo) {
     3556        pginfo->SetBookmark(bookmark);
     3557        retlist << "OK";
     3558    }
     3559    else
     3560        retlist << "FAILED";
    35543561
    3555     retlist << "OK";
    35563562    if (pbssock)
    35573563        SendResponse(pbssock, retlist);
    35583564