Ticket #8261: CreateBuffers_check_NULL.patch

File CreateBuffers_check_NULL.patch, 1.5 KB (added by jpoet, 10 years ago)

VideoBuffers::CreateBuffers?: check if av_malloc returns NULL

  • libs/libmythtv/videobuffers.cpp

     
    11331133    {
    11341134        unsigned char *data = (unsigned char*)av_malloc(buf_size + 64);
    11351135
    1136         bufs.push_back(data);
    1137         yuvinfo.push_back(YUVInfo(width, height, buf_size, NULL, NULL));
    1138 
    1139         if (bufs.back())
     1136        if (data == NULL)
    11401137        {
    1141             VERBOSE(VB_PLAYBACK+VB_EXTRA, "Created data @"
    1142                     <<((void*)data)<<"->"<<((void*)(data+buf_size)));
    1143             allocated_arrays.push_back(bufs.back());
     1138            VERBOSE(VB_IMPORTANT,
     1139                    QString("VideoBuffers::CreateBuffers "
     1140                            "called with width %1, height %2, bufs.size() %3\n"
     1141                            "av_malloc(%4) failed")
     1142                    .arg(width).arg(height)
     1143                    .arg(bufs.size()).arg(buf_size + 64));
     1144            ok = false;
    11441145        }
    11451146        else
    1146             ok = false;
     1147        {
     1148            bufs.push_back(data);
     1149            yuvinfo.push_back(YUVInfo(width, height, buf_size, NULL, NULL));
     1150
     1151            if (bufs.back())
     1152            {
     1153                VERBOSE(VB_PLAYBACK+VB_EXTRA, "Created data @"
     1154                        <<((void*)data)<<"->"<<((void*)(data+buf_size)));
     1155                allocated_arrays.push_back(bufs.back());
     1156            }
     1157            else
     1158                ok = false;
     1159        }
    11471160    }
    11481161
    11491162    for (uint i = 0; i < allocSize(); i++)