libavcodec/wmavoice.c:1661: error: Null Dereference
  pointer `gb->buffer` last assigned on line 1654 could be null and is dereferenced by call to `get_bits1()` at line 1661, column 10.

libavcodec/wmavoice.c:1646:1: start of procedure check_bits_for_superframe()
1644.  * @return -1 if unsupported, 1 on not enough bits or 0 if OK.
1645.  */
1646. static int check_bits_for_superframe(GetBitContext *orig_gb,
      ^
1647.                                      WMAVoiceContext *s)
1648. {

libavcodec/wmavoice.c:1649:5: 
1647.                                      WMAVoiceContext *s)
1648. {
1649.     GetBitContext s_gb, *gb = &s_gb;
          ^
1650.     int n, need_bits, bd_idx;
1651.     const struct frame_type_desc *frame_desc;

libavcodec/wmavoice.c:1654:5: 
1652. 
1653.     /* initialize a copy */
1654.     init_get_bits(gb, orig_gb->buffer, orig_gb->size_in_bits);
          ^
1655.     skip_bits_long(gb, get_bits_count(orig_gb));
1656.     assert(get_bits_left(gb) == get_bits_left(orig_gb));

libavcodec/get_bits.h:343:1: start of procedure init_get_bits()
  341.  * @param bit_size the size of the buffer in bits
  342.  */
  343. static inline void init_get_bits(GetBitContext *s, const uint8_t *buffer,
       ^
  344.                                  int bit_size)
  345. {

libavcodec/get_bits.h:346:5: 
  344.                                  int bit_size)
  345. {
  346.     int buffer_size = (bit_size+7)>>3;
           ^
  347.     if (buffer_size < 0 || bit_size < 0) {
  348.         buffer_size = bit_size = 0;

libavcodec/get_bits.h:347:9: Taking true branch
  345. {
  346.     int buffer_size = (bit_size+7)>>3;
  347.     if (buffer_size < 0 || bit_size < 0) {
               ^
  348.         buffer_size = bit_size = 0;
  349.         buffer = NULL;

libavcodec/get_bits.h:348:9: 
  346.     int buffer_size = (bit_size+7)>>3;
  347.     if (buffer_size < 0 || bit_size < 0) {
  348.         buffer_size = bit_size = 0;
               ^
  349.         buffer = NULL;
  350.     }

libavcodec/get_bits.h:349:9: 
  347.     if (buffer_size < 0 || bit_size < 0) {
  348.         buffer_size = bit_size = 0;
  349.         buffer = NULL;
               ^
  350.     }
  351. 

libavcodec/get_bits.h:352:5: 
  350.     }
  351. 
  352.     s->buffer       = buffer;
           ^
  353.     s->size_in_bits = bit_size;
  354. #if !UNCHECKED_BITSTREAM_READER

libavcodec/get_bits.h:353:5: 
  351. 
  352.     s->buffer       = buffer;
  353.     s->size_in_bits = bit_size;
           ^
  354. #if !UNCHECKED_BITSTREAM_READER
  355.     s->size_in_bits_plus8 = bit_size + 8;

libavcodec/get_bits.h:355:5: 
  353.     s->size_in_bits = bit_size;
  354. #if !UNCHECKED_BITSTREAM_READER
  355.     s->size_in_bits_plus8 = bit_size + 8;
           ^
  356. #endif
  357.     s->buffer_end   = buffer + buffer_size;

libavcodec/get_bits.h:357:5: 
  355.     s->size_in_bits_plus8 = bit_size + 8;
  356. #endif
  357.     s->buffer_end   = buffer + buffer_size;
           ^
  358.     s->index        = 0;
  359. }

libavcodec/get_bits.h:358:5: 
  356. #endif
  357.     s->buffer_end   = buffer + buffer_size;
  358.     s->index        = 0;
           ^
  359. }
  360. 

libavcodec/get_bits.h:359:1: return from a call to init_get_bits
  357.     s->buffer_end   = buffer + buffer_size;
  358.     s->index        = 0;
  359. }
       ^
  360. 
  361. static inline void align_get_bits(GetBitContext *s)

libavcodec/wmavoice.c:1655:5: 
1653.     /* initialize a copy */
1654.     init_get_bits(gb, orig_gb->buffer, orig_gb->size_in_bits);
1655.     skip_bits_long(gb, get_bits_count(orig_gb));
          ^
1656.     assert(get_bits_left(gb) == get_bits_left(orig_gb));
1657. 

libavcodec/get_bits.h:183:1: start of procedure get_bits_count()
  181. #define GET_CACHE(name, gb) ((uint32_t)name##_cache)
  182. 
  183. static inline int get_bits_count(const GetBitContext *s)
       ^
  184. {
  185.     return s->index;

libavcodec/get_bits.h:185:5: 
  183. static inline int get_bits_count(const GetBitContext *s)
  184. {
  185.     return s->index;
           ^
  186. }
  187. 

libavcodec/get_bits.h:186:1: return from a call to get_bits_count
  184. {
  185.     return s->index;
  186. }
       ^
  187. 
  188. static inline void skip_bits_long(GetBitContext *s, int n){

libavcodec/get_bits.h:188:1: start of procedure skip_bits_long()
  186. }
  187. 
  188. static inline void skip_bits_long(GetBitContext *s, int n){
       ^
  189. #if UNCHECKED_BITSTREAM_READER
  190.     s->index += n;

libavcodec/get_bits.h:190:5: 
  188. static inline void skip_bits_long(GetBitContext *s, int n){
  189. #if UNCHECKED_BITSTREAM_READER
  190.     s->index += n;
           ^
  191. #else
  192.     s->index += av_clip(n, -s->index, s->size_in_bits_plus8 - s->index);

libavcodec/get_bits.h:194:1: return from a call to skip_bits_long
  192.     s->index += av_clip(n, -s->index, s->size_in_bits_plus8 - s->index);
  193. #endif
  194. }
       ^
  195. 
  196. /**

libavcodec/wmavoice.c:1656:5: 
1654.     init_get_bits(gb, orig_gb->buffer, orig_gb->size_in_bits);
1655.     skip_bits_long(gb, get_bits_count(orig_gb));
1656.     assert(get_bits_left(gb) == get_bits_left(orig_gb));
          ^
1657. 
1658.     /* superframe header */

libavcodec/wmavoice.c:1659:9: 
1657. 
1658.     /* superframe header */
1659.     if (get_bits_left(gb) < 14)
              ^
1660.         return 1;
1661.     if (!get_bits1(gb))

libavcodec/get_bits.h:496:1: start of procedure get_bits_left()
  494. }
  495. 
  496. static inline int get_bits_left(GetBitContext *gb)
       ^
  497. {
  498.     return gb->size_in_bits - get_bits_count(gb);

libavcodec/get_bits.h:498:5: 
  496. static inline int get_bits_left(GetBitContext *gb)
  497. {
  498.     return gb->size_in_bits - get_bits_count(gb);
           ^
  499. }
  500. 

libavcodec/get_bits.h:183:1: start of procedure get_bits_count()
    181. #define GET_CACHE(name, gb) ((uint32_t)name##_cache)
    182. 
    183. static inline int get_bits_count(const GetBitContext *s)
         ^
    184. {
    185.     return s->index;

libavcodec/get_bits.h:185:5: 
    183. static inline int get_bits_count(const GetBitContext *s)
    184. {
    185.     return s->index;
             ^
    186. }
    187. 

libavcodec/get_bits.h:186:1: return from a call to get_bits_count
    184. {
    185.     return s->index;
    186. }
         ^
    187. 
    188. static inline void skip_bits_long(GetBitContext *s, int n){

libavcodec/get_bits.h:499:1: return from a call to get_bits_left
  497. {
  498.     return gb->size_in_bits - get_bits_count(gb);
  499. }
       ^
  500. 
  501. //#define TRACE

libavcodec/wmavoice.c:1659:9: Taking false branch
1657. 
1658.     /* superframe header */
1659.     if (get_bits_left(gb) < 14)
              ^
1660.         return 1;
1661.     if (!get_bits1(gb))

libavcodec/wmavoice.c:1661:10: 
1659.     if (get_bits_left(gb) < 14)
1660.         return 1;
1661.     if (!get_bits1(gb))
               ^
1662.         return -1;                        // WMAPro-in-WMAVoice superframe
1663.     if (get_bits1(gb)) skip_bits(gb, 12); // number of  samples in superframe

libavcodec/get_bits.h:259:1: start of procedure get_bits1()
  257. }
  258. 
  259. static inline unsigned int get_bits1(GetBitContext *s)
       ^
  260. {
  261.     unsigned int index = s->index;

libavcodec/get_bits.h:261:5: 
  259. static inline unsigned int get_bits1(GetBitContext *s)
  260. {
  261.     unsigned int index = s->index;
           ^
  262.     uint8_t result = s->buffer[index>>3];
  263. #ifdef ALT_BITSTREAM_READER_LE

libavcodec/get_bits.h:262:5: 
  260. {
  261.     unsigned int index = s->index;
  262.     uint8_t result = s->buffer[index>>3];
           ^
  263. #ifdef ALT_BITSTREAM_READER_LE
  264.     result >>= index & 7;
