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

libavcodec/utils.c:528:1: start of procedure avcodec_default_release_buffer()
526. }
527. 
528. void avcodec_default_release_buffer(AVCodecContext *s, AVFrame *pic)
     ^
529. {
530.     int i;

libavcodec/utils.c:532:5: 
530.     int i;
531.     InternalBuffer *buf, *last;
532.     AVCodecInternal *avci = s->internal;
         ^
533. 
534.     assert(s->codec_type == AVMEDIA_TYPE_VIDEO);

libavcodec/utils.c:534:5: 
532.     AVCodecInternal *avci = s->internal;
533. 
534.     assert(s->codec_type == AVMEDIA_TYPE_VIDEO);
         ^
535. 
536.     assert(pic->type == FF_BUFFER_TYPE_INTERNAL);

libavcodec/utils.c:536:5: 
534.     assert(s->codec_type == AVMEDIA_TYPE_VIDEO);
535. 
536.     assert(pic->type == FF_BUFFER_TYPE_INTERNAL);
         ^
537.     assert(avci->buffer_count);
538. 

libavcodec/utils.c:537:5: 
535. 
536.     assert(pic->type == FF_BUFFER_TYPE_INTERNAL);
537.     assert(avci->buffer_count);
         ^
538. 
539.     if (avci->buffer) {

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

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

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

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

libavcodec/utils.c:546:9: 
544.                 break;
545.         }
546.         assert(i < avci->buffer_count);
             ^
547.         avci->buffer_count--;
548.         last = &avci->buffer[avci->buffer_count];

libavcodec/utils.c:547:9: 
545.         }
546.         assert(i < avci->buffer_count);
547.         avci->buffer_count--;
             ^
548.         last = &avci->buffer[avci->buffer_count];
549. 

libavcodec/utils.c:548:9: 
546.         assert(i < avci->buffer_count);
547.         avci->buffer_count--;
548.         last = &avci->buffer[avci->buffer_count];
             ^
549. 
550.         if (buf != last)

libavcodec/utils.c:550:13: Taking true branch
548.         last = &avci->buffer[avci->buffer_count];
549. 
550.         if (buf != last)
                 ^
551.             FFSWAP(InternalBuffer, *buf, *last);
552.     }

libavcodec/utils.c:551:13: 
549. 
550.         if (buf != last)
551.             FFSWAP(InternalBuffer, *buf, *last);
                 ^
552.     }
553. 

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];
        if (buf != last)
            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{\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        if (buf != last)\n            FFSWAP(InternalBuffer, *buf, *last);\n    }\n    for (i = 0; i < AV_NUM_DATA_POINTERS; i++)\n        pic->data[i] = NULL;\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}']