libavformat/rtpdec.c:409: error: Null Dereference
  pointer `infos->au_headers` last assigned on line 404 could be null and is dereferenced at line 409, column 5.

libavformat/rtpdec.c:373:1: start of procedure rtp_parse_mp4_au()
371. }
372. 
373. static int rtp_parse_mp4_au(RTPDemuxContext *s, const uint8_t *buf)
     ^
374. {
375.     int au_headers_length, au_header_size, i;

libavformat/rtpdec.c:379:5: 
377.     RTPPayloadData *infos;
378. 
379.     infos = s->rtp_payload_data;
         ^
380. 
381.     if (infos == NULL)

libavformat/rtpdec.c:381:9: Taking false branch
379.     infos = s->rtp_payload_data;
380. 
381.     if (infos == NULL)
             ^
382.         return -1;
383. 

libavformat/rtpdec.c:386:5: 
384.     /* decode the first 2 bytes where the AUHeader sections are stored
385.        length in bits */
386.     au_headers_length = AV_RB16(buf);
         ^
387. 
388.     if (au_headers_length > RTP_MAX_PACKET_LENGTH)

libavutil/bswap.h:46:1: start of procedure bswap_16()
  44. 
  45. #ifndef bswap_16
  46. static av_always_inline av_const uint16_t bswap_16(uint16_t x)
      ^
  47. {
  48.     x= (x>>8) | (x<<8);

libavutil/bswap.h:48:5: 
  46. static av_always_inline av_const uint16_t bswap_16(uint16_t x)
  47. {
  48.     x= (x>>8) | (x<<8);
          ^
  49.     return x;
  50. }

libavutil/bswap.h:49:5: 
  47. {
  48.     x= (x>>8) | (x<<8);
  49.     return x;
          ^
  50. }
  51. #endif

libavutil/bswap.h:50:1: return from a call to bswap_16
  48.     x= (x>>8) | (x<<8);
  49.     return x;
  50. }
      ^
  51. #endif
  52. 

libavformat/rtpdec.c:388:9: Taking false branch
386.     au_headers_length = AV_RB16(buf);
387. 
388.     if (au_headers_length > RTP_MAX_PACKET_LENGTH)
             ^
389.       return -1;
390. 

libavformat/rtpdec.c:391:5: 
389.       return -1;
390. 
391.     infos->au_headers_length_bytes = (au_headers_length + 7) / 8;
         ^
392. 
393.     /* skip AU headers length section (2 bytes) */

libavformat/rtpdec.c:394:5: 
392. 
393.     /* skip AU headers length section (2 bytes) */
394.     buf += 2;
         ^
395. 
396.     init_get_bits(&getbitcontext, buf, infos->au_headers_length_bytes * 8);

libavformat/rtpdec.c:396:5: 
394.     buf += 2;
395. 
396.     init_get_bits(&getbitcontext, buf, infos->au_headers_length_bytes * 8);
         ^
397. 
398.     /* XXX: Wrong if optionnal additional sections are present (cts, dts etc...) */

libavcodec/get_bits.h:473:1: start of procedure init_get_bits()
  471.  * responsible for checking for the buffer end yourself (take advantage of the padding)!
  472.  */
  473. static inline void init_get_bits(GetBitContext *s,
       ^
  474.                    const uint8_t *buffer, int bit_size)
  475. {

libavcodec/get_bits.h:476:5: 
  474.                    const uint8_t *buffer, int bit_size)
  475. {
  476.     int buffer_size= (bit_size+7)>>3;
           ^
  477.     if(buffer_size < 0 || bit_size < 0) {
  478.         buffer_size = bit_size = 0;

libavcodec/get_bits.h:477:8: Taking false branch
  475. {
  476.     int buffer_size= (bit_size+7)>>3;
  477.     if(buffer_size < 0 || bit_size < 0) {
              ^
  478.         buffer_size = bit_size = 0;
  479.         buffer = NULL;

libavcodec/get_bits.h:477:27: Taking false branch
  475. {
  476.     int buffer_size= (bit_size+7)>>3;
  477.     if(buffer_size < 0 || bit_size < 0) {
                                 ^
  478.         buffer_size = bit_size = 0;
  479.         buffer = NULL;

libavcodec/get_bits.h:482:5: 
  480.     }
  481. 
  482.     s->buffer= buffer;
           ^
  483.     s->size_in_bits= bit_size;
  484.     s->buffer_end= buffer + buffer_size;

libavcodec/get_bits.h:483:5: 
  481. 
  482.     s->buffer= buffer;
  483.     s->size_in_bits= bit_size;
           ^
  484.     s->buffer_end= buffer + buffer_size;
  485. #ifdef ALT_BITSTREAM_READER

libavcodec/get_bits.h:484:5: 
  482.     s->buffer= buffer;
  483.     s->size_in_bits= bit_size;
  484.     s->buffer_end= buffer + buffer_size;
           ^
  485. #ifdef ALT_BITSTREAM_READER
  486.     s->index=0;

libavcodec/get_bits.h:486:5: 
  484.     s->buffer_end= buffer + buffer_size;
  485. #ifdef ALT_BITSTREAM_READER
  486.     s->index=0;
           ^
  487. #elif defined LIBMPEG2_BITSTREAM_READER
  488.     s->buffer_ptr = (uint8_t*)((intptr_t)buffer&(~1));

libavcodec/get_bits.h:496:1: return from a call to init_get_bits
  494.     skip_bits_long(s, 0);
  495. #endif
  496. }
       ^
  497. 
  498. static inline void align_get_bits(GetBitContext *s)

libavformat/rtpdec.c:399:5: 
397. 
398.     /* XXX: Wrong if optionnal additional sections are present (cts, dts etc...) */
399.     au_header_size = infos->sizelength + infos->indexlength;
         ^
400.     if (au_header_size <= 0 || (au_headers_length % au_header_size != 0))
401.         return -1;

libavformat/rtpdec.c:400:9: Taking false branch
398.     /* XXX: Wrong if optionnal additional sections are present (cts, dts etc...) */
399.     au_header_size = infos->sizelength + infos->indexlength;
400.     if (au_header_size <= 0 || (au_headers_length % au_header_size != 0))
             ^
401.         return -1;
402. 

libavformat/rtpdec.c:400:33: Taking false branch
398.     /* XXX: Wrong if optionnal additional sections are present (cts, dts etc...) */
399.     au_header_size = infos->sizelength + infos->indexlength;
400.     if (au_header_size <= 0 || (au_headers_length % au_header_size != 0))
                                     ^
401.         return -1;
402. 

libavformat/rtpdec.c:403:5: 
401.         return -1;
402. 
403.     infos->nb_au_headers = au_headers_length / au_header_size;
         ^
404.     infos->au_headers = av_malloc(sizeof(struct AUHeaders) * infos->nb_au_headers);
405. 

libavformat/rtpdec.c:404:5: 
402. 
403.     infos->nb_au_headers = au_headers_length / au_header_size;
404.     infos->au_headers = av_malloc(sizeof(struct AUHeaders) * infos->nb_au_headers);
         ^
405. 
406.     /* XXX: We handle multiple AU Section as only one (need to fix this for interleaving)

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

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

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

libavutil/mem.c:73:9: 
  71.     /* let's disallow possible ambiguous cases */
  72.     if(size > (INT_MAX-16) )
  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, unsigned int size)

libavformat/rtpdec.c:409:5: 
407.        In my test, the FAAD decoder does not behave correctly when sending each AU one by one
408.        but does when sending the whole as one big packet...  */
409.     infos->au_headers[0].size = 0;
         ^
410.     infos->au_headers[0].index = 0;
411.     for (i = 0; i < infos->nb_au_headers; ++i) {
