libavcodec/parser.c:200: error: Null Dereference
  pointer `*poutbuf` last assigned on line 198 could be null and is dereferenced by call to `memcpy()` at line 200, column 13.

libavcodec/parser.c:176:1: start of procedure av_parser_change()
174.  * @deprecated use AVBitstreamFilter
175.  */
176. int av_parser_change(AVCodecParserContext *s,
     ^
177.                      AVCodecContext *avctx,
178.                      uint8_t **poutbuf, int *poutbuf_size,

libavcodec/parser.c:181:8: Taking true branch
179.                      const uint8_t *buf, int buf_size, int keyframe){
180. 
181.     if(s && s->parser->split){
            ^
182.         if((avctx->flags & CODEC_FLAG_GLOBAL_HEADER) || (avctx->flags2 & CODEC_FLAG2_LOCAL_HEADER)){
183.             int i= s->parser->split(avctx, buf, buf_size);

libavcodec/parser.c:181:13: Taking true branch
179.                      const uint8_t *buf, int buf_size, int keyframe){
180. 
181.     if(s && s->parser->split){
                 ^
182.         if((avctx->flags & CODEC_FLAG_GLOBAL_HEADER) || (avctx->flags2 & CODEC_FLAG2_LOCAL_HEADER)){
183.             int i= s->parser->split(avctx, buf, buf_size);

libavcodec/parser.c:182:13: Taking true branch
180. 
181.     if(s && s->parser->split){
182.         if((avctx->flags & CODEC_FLAG_GLOBAL_HEADER) || (avctx->flags2 & CODEC_FLAG2_LOCAL_HEADER)){
                 ^
183.             int i= s->parser->split(avctx, buf, buf_size);
184.             buf += i;

libavcodec/parser.c:183:13: Skipping __function_pointer__(): unresolved function pointer
181.     if(s && s->parser->split){
182.         if((avctx->flags & CODEC_FLAG_GLOBAL_HEADER) || (avctx->flags2 & CODEC_FLAG2_LOCAL_HEADER)){
183.             int i= s->parser->split(avctx, buf, buf_size);
                 ^
184.             buf += i;
185.             buf_size -= i;

libavcodec/parser.c:184:13: 
182.         if((avctx->flags & CODEC_FLAG_GLOBAL_HEADER) || (avctx->flags2 & CODEC_FLAG2_LOCAL_HEADER)){
183.             int i= s->parser->split(avctx, buf, buf_size);
184.             buf += i;
                 ^
185.             buf_size -= i;
186.         }

libavcodec/parser.c:185:13: 
183.             int i= s->parser->split(avctx, buf, buf_size);
184.             buf += i;
185.             buf_size -= i;
                 ^
186.         }
187.     }

libavcodec/parser.c:190:5: 
188. 
189.     /* cast to avoid warning about discarding qualifiers */
190.     *poutbuf= (uint8_t *) buf;
         ^
191.     *poutbuf_size= buf_size;
192.     if(avctx->extradata){

libavcodec/parser.c:191:5: 
189.     /* cast to avoid warning about discarding qualifiers */
190.     *poutbuf= (uint8_t *) buf;
191.     *poutbuf_size= buf_size;
         ^
192.     if(avctx->extradata){
193.         if(  (keyframe && (avctx->flags2 & CODEC_FLAG2_LOCAL_HEADER))

libavcodec/parser.c:192:8: Taking true branch
190.     *poutbuf= (uint8_t *) buf;
191.     *poutbuf_size= buf_size;
192.     if(avctx->extradata){
            ^
193.         if(  (keyframe && (avctx->flags2 & CODEC_FLAG2_LOCAL_HEADER))
194.             /*||(s->pict_type != AV_PICTURE_TYPE_I && (s->flags & PARSER_FLAG_DUMP_EXTRADATA_AT_NOKEY))*/

libavcodec/parser.c:193:15: Taking true branch
191.     *poutbuf_size= buf_size;
192.     if(avctx->extradata){
193.         if(  (keyframe && (avctx->flags2 & CODEC_FLAG2_LOCAL_HEADER))
                   ^
194.             /*||(s->pict_type != AV_PICTURE_TYPE_I && (s->flags & PARSER_FLAG_DUMP_EXTRADATA_AT_NOKEY))*/
195.             /*||(? && (s->flags & PARSER_FLAG_DUMP_EXTRADATA_AT_BEGIN)*/){

libavcodec/parser.c:193:28: Taking true branch
191.     *poutbuf_size= buf_size;
192.     if(avctx->extradata){
193.         if(  (keyframe && (avctx->flags2 & CODEC_FLAG2_LOCAL_HEADER))
                                ^
194.             /*||(s->pict_type != AV_PICTURE_TYPE_I && (s->flags & PARSER_FLAG_DUMP_EXTRADATA_AT_NOKEY))*/
195.             /*||(? && (s->flags & PARSER_FLAG_DUMP_EXTRADATA_AT_BEGIN)*/){

libavcodec/parser.c:196:13: 
194.             /*||(s->pict_type != AV_PICTURE_TYPE_I && (s->flags & PARSER_FLAG_DUMP_EXTRADATA_AT_NOKEY))*/
195.             /*||(? && (s->flags & PARSER_FLAG_DUMP_EXTRADATA_AT_BEGIN)*/){
196.             int size= buf_size + avctx->extradata_size;
                 ^
197.             *poutbuf_size= size;
198.             *poutbuf= av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE);

libavcodec/parser.c:197:13: 
195.             /*||(? && (s->flags & PARSER_FLAG_DUMP_EXTRADATA_AT_BEGIN)*/){
196.             int size= buf_size + avctx->extradata_size;
197.             *poutbuf_size= size;
                 ^
198.             *poutbuf= av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE);
199. 

libavcodec/parser.c:198:13: 
196.             int size= buf_size + avctx->extradata_size;
197.             *poutbuf_size= size;
198.             *poutbuf= av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE);
                 ^
199. 
200.             memcpy(*poutbuf, avctx->extradata, avctx->extradata_size);

libavutil/mem.c:64:1: start of procedure av_malloc()
  62.    linker will do it automatically. */
  63. 
  64. void *av_malloc(size_t size)
      ^
  65. {
  66.     void *ptr = NULL;

libavutil/mem.c:66:5: 
  64. void *av_malloc(size_t size)
  65. {
  66.     void *ptr = NULL;
          ^
  67. #if CONFIG_MEMALIGN_HACK
  68.     long diff;

libavutil/mem.c:72:9: Taking true branch
  70. 
  71.     /* let's disallow possible ambiguous cases */
  72.     if (size > (INT_MAX-32) || !size)
              ^
  73.         return NULL;
  74. 

libavutil/mem.c:73:9: 
  71.     /* let's disallow possible ambiguous cases */
  72.     if (size > (INT_MAX-32) || !size)
  73.         return NULL;
              ^
  74. 
  75. #if CONFIG_MEMALIGN_HACK

libavutil/mem.c:117:1: return from a call to av_malloc
  115. #endif
  116.     return ptr;
  117. }
       ^
  118. 
  119. void *av_realloc(void *ptr, size_t size)

libavcodec/parser.c:200:13: 
198.             *poutbuf= av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE);
199. 
200.             memcpy(*poutbuf, avctx->extradata, avctx->extradata_size);
                 ^
201.             memcpy((*poutbuf) + avctx->extradata_size, buf, buf_size + FF_INPUT_BUFFER_PADDING_SIZE);
202.             return 1;

int av_parser_change(AVCodecParserContext *s,
                     AVCodecContext *avctx,
                     uint8_t **poutbuf, int *poutbuf_size,
                     const uint8_t *buf, int buf_size, int keyframe){
    if(s && s->parser->split){
        if((avctx->flags & CODEC_FLAG_GLOBAL_HEADER) || (avctx->flags2 & CODEC_FLAG2_LOCAL_HEADER)){
            int i= s->parser->split(avctx, buf, buf_size);
            buf += i;
            buf_size -= i;
        }
    }
    *poutbuf= (uint8_t *) buf;
    *poutbuf_size= buf_size;
    if(avctx->extradata){
        if(  (keyframe && (avctx->flags2 & CODEC_FLAG2_LOCAL_HEADER))
             ){
            int size= buf_size + avctx->extradata_size;
            *poutbuf_size= size;
            *poutbuf= av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE);
            memcpy(*poutbuf, avctx->extradata, avctx->extradata_size);
            memcpy((*poutbuf) + avctx->extradata_size, buf, buf_size + FF_INPUT_BUFFER_PADDING_SIZE);
            return 1;
        }
    }
    return 0;
}
['int av_parser_change(AVCodecParserContext *s,\n                     AVCodecContext *avctx,\n                     uint8_t **poutbuf, int *poutbuf_size,\n                     const uint8_t *buf, int buf_size, int keyframe){\n    if(s && s->parser->split){\n        if((avctx->flags & CODEC_FLAG_GLOBAL_HEADER) || (avctx->flags2 & CODEC_FLAG2_LOCAL_HEADER)){\n            int i= s->parser->split(avctx, buf, buf_size);\n            buf += i;\n            buf_size -= i;\n        }\n    }\n    *poutbuf= (uint8_t *) buf;\n    *poutbuf_size= buf_size;\n    if(avctx->extradata){\n        if(  (keyframe && (avctx->flags2 & CODEC_FLAG2_LOCAL_HEADER))\n             ){\n            int size= buf_size + avctx->extradata_size;\n            *poutbuf_size= size;\n            *poutbuf= av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE);\n            memcpy(*poutbuf, avctx->extradata, avctx->extradata_size);\n            memcpy((*poutbuf) + avctx->extradata_size, buf, buf_size + FF_INPUT_BUFFER_PADDING_SIZE);\n            return 1;\n        }\n    }\n    return 0;\n}', 'void *av_malloc(size_t size)\n{\n    void *ptr = NULL;\n#if CONFIG_MEMALIGN_HACK\n    long diff;\n#endif\n    if (size > (INT_MAX-32) || !size)\n        return NULL;\n#if CONFIG_MEMALIGN_HACK\n    ptr = malloc(size+32);\n    if(!ptr)\n        return ptr;\n    diff= ((-(long)ptr - 1)&31) + 1;\n    ptr = (char*)ptr + diff;\n    ((char*)ptr)[-1]= diff;\n#elif HAVE_POSIX_MEMALIGN\n    if (posix_memalign(&ptr,32,size))\n        ptr = NULL;\n#elif HAVE_ALIGNED_MALLOC\n    ptr = _aligned_malloc(size, 32);\n#elif HAVE_MEMALIGN\n    ptr = memalign(32,size);\n#else\n    ptr = malloc(size);\n#endif\n    return ptr;\n}']