libavcodec/utils.c:512: error: Null Dereference
  pointer `buf` last assigned on line 502 could be null and is dereferenced at line 512, column 9.

libavcodec/utils.c:491:1: start of procedure avcodec_default_release_buffer()
489. }
490. 
491. void avcodec_default_release_buffer(AVCodecContext *s, AVFrame *pic){
     ^
492.     int i;
493.     InternalBuffer *buf, *last;

libavcodec/utils.c:494:5: 
492.     int i;
493.     InternalBuffer *buf, *last;
494.     AVCodecInternal *avci = s->internal;
         ^
495. 
496.     assert(s->codec_type == AVMEDIA_TYPE_VIDEO);

libavcodec/utils.c:496:5: 
494.     AVCodecInternal *avci = s->internal;
495. 
496.     assert(s->codec_type == AVMEDIA_TYPE_VIDEO);
         ^
497. 
498.     assert(pic->type==FF_BUFFER_TYPE_INTERNAL);

libavcodec/utils.c:498:5: 
496.     assert(s->codec_type == AVMEDIA_TYPE_VIDEO);
497. 
498.     assert(pic->type==FF_BUFFER_TYPE_INTERNAL);
         ^
499.     assert(avci->buffer_count);
500. 

libavcodec/utils.c:499:5: 
497. 
498.     assert(pic->type==FF_BUFFER_TYPE_INTERNAL);
499.     assert(avci->buffer_count);
         ^
500. 
501.     if (avci->buffer) {

libavcodec/utils.c:501:9: Taking true branch
499.     assert(avci->buffer_count);
500. 
501.     if (avci->buffer) {
             ^
502.         buf = NULL; /* avoids warning */
503.         for (i = 0; i < avci->buffer_count; i++) { //just 3-5 checks so is not worth to optimize

libavcodec/utils.c:502:9: 
500. 
501.     if (avci->buffer) {
502.         buf = NULL; /* avoids warning */
             ^
503.         for (i = 0; i < avci->buffer_count; i++) { //just 3-5 checks so is not worth to optimize
504.             buf = &avci->buffer[i];

libavcodec/utils.c:503:14: 
501.     if (avci->buffer) {
502.         buf = NULL; /* avoids warning */
503.         for (i = 0; i < avci->buffer_count; i++) { //just 3-5 checks so is not worth to optimize
                  ^
504.             buf = &avci->buffer[i];
505.             if (buf->data[0] == pic->data[0])

libavcodec/utils.c:503:21: Loop condition is false. Leaving loop
501.     if (avci->buffer) {
502.         buf = NULL; /* avoids warning */
503.         for (i = 0; i < avci->buffer_count; i++) { //just 3-5 checks so is not worth to optimize
                         ^
504.             buf = &avci->buffer[i];
505.             if (buf->data[0] == pic->data[0])

libavcodec/utils.c:508:9: 
506.                 break;
507.         }
508.         assert(i < avci->buffer_count);
             ^
509.         avci->buffer_count--;
510.         last = &avci->buffer[avci->buffer_count];

libavcodec/utils.c:509:9: 
507.         }
508.         assert(i < avci->buffer_count);
509.         avci->buffer_count--;
             ^
510.         last = &avci->buffer[avci->buffer_count];
511. 

libavcodec/utils.c:510:9: 
508.         assert(i < avci->buffer_count);
509.         avci->buffer_count--;
510.         last = &avci->buffer[avci->buffer_count];
             ^
511. 
512.         FFSWAP(InternalBuffer, *buf, *last);

libavcodec/utils.c:512:9: 
510.         last = &avci->buffer[avci->buffer_count];
511. 
512.         FFSWAP(InternalBuffer, *buf, *last);
             ^
513.     }
514. 

void avcodec_default_release_buffer(AVCodecContext *s, AVFrame *pic){
    int i;
    InternalBuffer *buf, *last;
    AVCodecInternal *avci = s->internal;
    assert(s->codec_type == AVMEDIA_TYPE_VIDEO);
    assert(pic->type==FF_BUFFER_TYPE_INTERNAL);
    assert(avci->buffer_count);
    if (avci->buffer) {
        buf = NULL;
        for (i = 0; i < avci->buffer_count; i++) {
            buf = &avci->buffer[i];
            if (buf->data[0] == pic->data[0])
                break;
        }
        assert(i < avci->buffer_count);
        avci->buffer_count--;
        last = &avci->buffer[avci->buffer_count];
        FFSWAP(InternalBuffer, *buf, *last);
    }
    for (i = 0; i < AV_NUM_DATA_POINTERS; i++) {
        pic->data[i]=NULL;
    }
    if(s->debug&FF_DEBUG_BUFFERS)
        av_log(s, AV_LOG_DEBUG, "default_release_buffer called on pic %p, %d "
               "buffers used\n", pic, avci->buffer_count);
}
['void avcodec_default_release_buffer(AVCodecContext *s, AVFrame *pic){\n    int i;\n    InternalBuffer *buf, *last;\n    AVCodecInternal *avci = s->internal;\n    assert(s->codec_type == AVMEDIA_TYPE_VIDEO);\n    assert(pic->type==FF_BUFFER_TYPE_INTERNAL);\n    assert(avci->buffer_count);\n    if (avci->buffer) {\n        buf = NULL;\n        for (i = 0; i < avci->buffer_count; i++) {\n            buf = &avci->buffer[i];\n            if (buf->data[0] == pic->data[0])\n                break;\n        }\n        assert(i < avci->buffer_count);\n        avci->buffer_count--;\n        last = &avci->buffer[avci->buffer_count];\n        FFSWAP(InternalBuffer, *buf, *last);\n    }\n    for (i = 0; i < AV_NUM_DATA_POINTERS; i++) {\n        pic->data[i]=NULL;\n    }\n    if(s->debug&FF_DEBUG_BUFFERS)\n        av_log(s, AV_LOG_DEBUG, "default_release_buffer called on pic %p, %d "\n               "buffers used\\n", pic, avci->buffer_count);\n}']