libavcodec/aacdec.c:2392: error: Uninitialized Value
  The value read from err was never initialized.

libavcodec/aacdec.c:2392:13: 
2390. 
2391.         if (err)
2392.             return err;
                  ^
2393. 
2394.         if (get_bits_left(gb) < 3) {

static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
                                int *got_frame_ptr, GetBitContext *gb)
{
    AACContext *ac = avctx->priv_data;
    ChannelElement *che = NULL, *che_prev = NULL;
    enum RawDataBlockType elem_type, elem_type_prev = TYPE_END;
    int err, elem_id;
    int samples = 0, multiplier, audio_found = 0;
    if (show_bits(gb, 12) == 0xfff) {
        if (parse_adts_frame_header(ac, gb) < 0) {
            av_log(avctx, AV_LOG_ERROR, "Error decoding AAC frame header.\n");
            return -1;
        }
        if (ac->m4ac.sampling_index > 12) {
            av_log(ac->avctx, AV_LOG_ERROR, "invalid sampling rate index %d\n", ac->m4ac.sampling_index);
            return -1;
        }
    }
    ac->tags_mapped = 0;
    while ((elem_type = get_bits(gb, 3)) != TYPE_END) {
        elem_id = get_bits(gb, 4);
        if (elem_type < TYPE_DSE) {
            if (!(che=get_che(ac, elem_type, elem_id))) {
                av_log(ac->avctx, AV_LOG_ERROR, "channel element %d.%d is not allocated\n",
                       elem_type, elem_id);
                return -1;
            }
            samples = 1024;
        }
        switch (elem_type) {
        case TYPE_SCE:
            err = decode_ics(ac, &che->ch[0], gb, 0, 0);
            audio_found = 1;
            break;
        case TYPE_CPE:
            err = decode_cpe(ac, gb, che);
            audio_found = 1;
            break;
        case TYPE_CCE:
            err = decode_cce(ac, gb, che);
            break;
        case TYPE_LFE:
            err = decode_ics(ac, &che->ch[0], gb, 0, 0);
            audio_found = 1;
            break;
        case TYPE_DSE:
            err = skip_data_stream_element(ac, gb);
            break;
        case TYPE_PCE: {
            uint8_t layout_map[MAX_ELEM_ID*4][3];
            int tags;
            tags = decode_pce(avctx, &ac->m4ac, layout_map, gb);
            if (tags < 0) {
                err = tags;
                break;
            }
            if (ac->output_configured > OC_TRIAL_PCE)
                av_log(avctx, AV_LOG_ERROR,
                       "Not evaluating a further program_config_element as this construct is dubious at best.\n");
            else
                err = output_configure(ac, layout_map, tags, 0, OC_TRIAL_PCE);
            break;
        }
        case TYPE_FIL:
            if (elem_id == 15)
                elem_id += get_bits(gb, 8) - 1;
            if (get_bits_left(gb) < 8 * elem_id) {
                    av_log(avctx, AV_LOG_ERROR, overread_err);
                    return -1;
            }
            while (elem_id > 0)
                elem_id -= decode_extension_payload(ac, gb, elem_id, che_prev, elem_type_prev);
            err = 0;
            break;
        default:
            err = -1;
            break;
        }
        che_prev       = che;
        elem_type_prev = elem_type;
        if (err)
            return err;
        if (get_bits_left(gb) < 3) {
            av_log(avctx, AV_LOG_ERROR, overread_err);
            return -1;
        }
    }
    spectral_to_sample(ac);
    multiplier = (ac->m4ac.sbr == 1) ? ac->m4ac.ext_sample_rate > ac->m4ac.sample_rate : 0;
    samples <<= multiplier;
    if (ac->output_configured < OC_LOCKED) {
        avctx->sample_rate = ac->m4ac.sample_rate << multiplier;
        avctx->frame_size = samples;
    }
    if (samples) {
        ac->frame.nb_samples = samples;
        if ((err = avctx->get_buffer(avctx, &ac->frame)) < 0) {
            av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
            return err;
        }
        if (avctx->sample_fmt == AV_SAMPLE_FMT_FLT)
            ac->fmt_conv.float_interleave((float *)ac->frame.data[0],
                                          (const float **)ac->output_data,
                                          samples, avctx->channels);
        else
            ac->fmt_conv.float_to_int16_interleave((int16_t *)ac->frame.data[0],
                                                   (const float **)ac->output_data,
                                                   samples, avctx->channels);
        *(AVFrame *)data = ac->frame;
    }
    *got_frame_ptr = !!samples;
    if (ac->output_configured && audio_found)
        ac->output_configured = OC_LOCKED;
    return 0;
}
['static int aac_decode_frame_int(AVCodecContext *avctx, void *data,\n                                int *got_frame_ptr, GetBitContext *gb)\n{\n    AACContext *ac = avctx->priv_data;\n    ChannelElement *che = NULL, *che_prev = NULL;\n    enum RawDataBlockType elem_type, elem_type_prev = TYPE_END;\n    int err, elem_id;\n    int samples = 0, multiplier, audio_found = 0;\n    if (show_bits(gb, 12) == 0xfff) {\n        if (parse_adts_frame_header(ac, gb) < 0) {\n            av_log(avctx, AV_LOG_ERROR, "Error decoding AAC frame header.\\n");\n            return -1;\n        }\n        if (ac->m4ac.sampling_index > 12) {\n            av_log(ac->avctx, AV_LOG_ERROR, "invalid sampling rate index %d\\n", ac->m4ac.sampling_index);\n            return -1;\n        }\n    }\n    ac->tags_mapped = 0;\n    while ((elem_type = get_bits(gb, 3)) != TYPE_END) {\n        elem_id = get_bits(gb, 4);\n        if (elem_type < TYPE_DSE) {\n            if (!(che=get_che(ac, elem_type, elem_id))) {\n                av_log(ac->avctx, AV_LOG_ERROR, "channel element %d.%d is not allocated\\n",\n                       elem_type, elem_id);\n                return -1;\n            }\n            samples = 1024;\n        }\n        switch (elem_type) {\n        case TYPE_SCE:\n            err = decode_ics(ac, &che->ch[0], gb, 0, 0);\n            audio_found = 1;\n            break;\n        case TYPE_CPE:\n            err = decode_cpe(ac, gb, che);\n            audio_found = 1;\n            break;\n        case TYPE_CCE:\n            err = decode_cce(ac, gb, che);\n            break;\n        case TYPE_LFE:\n            err = decode_ics(ac, &che->ch[0], gb, 0, 0);\n            audio_found = 1;\n            break;\n        case TYPE_DSE:\n            err = skip_data_stream_element(ac, gb);\n            break;\n        case TYPE_PCE: {\n            uint8_t layout_map[MAX_ELEM_ID*4][3];\n            int tags;\n            tags = decode_pce(avctx, &ac->m4ac, layout_map, gb);\n            if (tags < 0) {\n                err = tags;\n                break;\n            }\n            if (ac->output_configured > OC_TRIAL_PCE)\n                av_log(avctx, AV_LOG_ERROR,\n                       "Not evaluating a further program_config_element as this construct is dubious at best.\\n");\n            else\n                err = output_configure(ac, layout_map, tags, 0, OC_TRIAL_PCE);\n            break;\n        }\n        case TYPE_FIL:\n            if (elem_id == 15)\n                elem_id += get_bits(gb, 8) - 1;\n            if (get_bits_left(gb) < 8 * elem_id) {\n                    av_log(avctx, AV_LOG_ERROR, overread_err);\n                    return -1;\n            }\n            while (elem_id > 0)\n                elem_id -= decode_extension_payload(ac, gb, elem_id, che_prev, elem_type_prev);\n            err = 0;\n            break;\n        default:\n            err = -1;\n            break;\n        }\n        che_prev       = che;\n        elem_type_prev = elem_type;\n        if (err)\n            return err;\n        if (get_bits_left(gb) < 3) {\n            av_log(avctx, AV_LOG_ERROR, overread_err);\n            return -1;\n        }\n    }\n    spectral_to_sample(ac);\n    multiplier = (ac->m4ac.sbr == 1) ? ac->m4ac.ext_sample_rate > ac->m4ac.sample_rate : 0;\n    samples <<= multiplier;\n    if (ac->output_configured < OC_LOCKED) {\n        avctx->sample_rate = ac->m4ac.sample_rate << multiplier;\n        avctx->frame_size = samples;\n    }\n    if (samples) {\n        ac->frame.nb_samples = samples;\n        if ((err = avctx->get_buffer(avctx, &ac->frame)) < 0) {\n            av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\\n");\n            return err;\n        }\n        if (avctx->sample_fmt == AV_SAMPLE_FMT_FLT)\n            ac->fmt_conv.float_interleave((float *)ac->frame.data[0],\n                                          (const float **)ac->output_data,\n                                          samples, avctx->channels);\n        else\n            ac->fmt_conv.float_to_int16_interleave((int16_t *)ac->frame.data[0],\n                                                   (const float **)ac->output_data,\n                                                   samples, avctx->channels);\n        *(AVFrame *)data = ac->frame;\n    }\n    *got_frame_ptr = !!samples;\n    if (ac->output_configured && audio_found)\n        ac->output_configured = OC_LOCKED;\n    return 0;\n}']