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:339:1: start of procedure init_get_bits()
  337.  * @param bit_size the size of the buffer in bits
  338.  */
  339. static inline void init_get_bits(GetBitContext *s, const uint8_t *buffer,
       ^
  340.                                  int bit_size)
  341. {

libavcodec/get_bits.h:342:5: 
  340.                                  int bit_size)
  341. {
  342.     int buffer_size = (bit_size+7)>>3;
           ^
  343.     if (buffer_size < 0 || bit_size < 0) {
  344.         buffer_size = bit_size = 0;

libavcodec/get_bits.h:343:9: Taking true branch
  341. {
  342.     int buffer_size = (bit_size+7)>>3;
  343.     if (buffer_size < 0 || bit_size < 0) {
               ^
  344.         buffer_size = bit_size = 0;
  345.         buffer = NULL;

libavcodec/get_bits.h:344:9: 
  342.     int buffer_size = (bit_size+7)>>3;
  343.     if (buffer_size < 0 || bit_size < 0) {
  344.         buffer_size = bit_size = 0;
               ^
  345.         buffer = NULL;
  346.     }

libavcodec/get_bits.h:345:9: 
  343.     if (buffer_size < 0 || bit_size < 0) {
  344.         buffer_size = bit_size = 0;
  345.         buffer = NULL;
               ^
  346.     }
  347. 

libavcodec/get_bits.h:348:5: 
  346.     }
  347. 
  348.     s->buffer       = buffer;
           ^
  349.     s->size_in_bits = bit_size;
  350. #if !UNCHECKED_BITSTREAM_READER

libavcodec/get_bits.h:349:5: 
  347. 
  348.     s->buffer       = buffer;
  349.     s->size_in_bits = bit_size;
           ^
  350. #if !UNCHECKED_BITSTREAM_READER
  351.     s->size_in_bits_plus8 = bit_size + 8;

libavcodec/get_bits.h:351:5: 
  349.     s->size_in_bits = bit_size;
  350. #if !UNCHECKED_BITSTREAM_READER
  351.     s->size_in_bits_plus8 = bit_size + 8;
           ^
  352. #endif
  353.     s->buffer_end   = buffer + buffer_size;

libavcodec/get_bits.h:353:5: 
  351.     s->size_in_bits_plus8 = bit_size + 8;
  352. #endif
  353.     s->buffer_end   = buffer + buffer_size;
           ^
  354.     s->index        = 0;
  355. }

libavcodec/get_bits.h:354:5: 
  352. #endif
  353.     s->buffer_end   = buffer + buffer_size;
  354.     s->index        = 0;
           ^
  355. }
  356. 

libavcodec/get_bits.h:355:1: return from a call to init_get_bits
  353.     s->buffer_end   = buffer + buffer_size;
  354.     s->index        = 0;
  355. }
       ^
  356. 
  357. 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:179:1: start of procedure get_bits_count()
  177. #define GET_CACHE(name, gb) ((uint32_t)name##_cache)
  178. 
  179. static inline int get_bits_count(const GetBitContext *s)
       ^
  180. {
  181.     return s->index;

libavcodec/get_bits.h:181:5: 
  179. static inline int get_bits_count(const GetBitContext *s)
  180. {
  181.     return s->index;
           ^
  182. }
  183. 

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

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

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

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

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:492:1: start of procedure get_bits_left()
  490. }
  491. 
  492. static inline int get_bits_left(GetBitContext *gb)
       ^
  493. {
  494.     return gb->size_in_bits - get_bits_count(gb);

libavcodec/get_bits.h:494:5: 
  492. static inline int get_bits_left(GetBitContext *gb)
  493. {
  494.     return gb->size_in_bits - get_bits_count(gb);
           ^
  495. }
  496. 

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

libavcodec/get_bits.h:181:5: 
    179. static inline int get_bits_count(const GetBitContext *s)
    180. {
    181.     return s->index;
             ^
    182. }
    183. 

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

libavcodec/get_bits.h:495:1: return from a call to get_bits_left
  493. {
  494.     return gb->size_in_bits - get_bits_count(gb);
  495. }
       ^
  496. 
  497. //#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:255:1: start of procedure get_bits1()
  253. }
  254. 
  255. static inline unsigned int get_bits1(GetBitContext *s)
       ^
  256. {
  257.     unsigned int index = s->index;

libavcodec/get_bits.h:257:5: 
  255. static inline unsigned int get_bits1(GetBitContext *s)
  256. {
  257.     unsigned int index = s->index;
           ^
  258.     uint8_t result = s->buffer[index>>3];
  259. #ifdef BITSTREAM_READER_LE

libavcodec/get_bits.h:258:5: 
  256. {
  257.     unsigned int index = s->index;
  258.     uint8_t result = s->buffer[index>>3];
           ^
  259. #ifdef BITSTREAM_READER_LE
  260.     result >>= index & 7;
