- remove unused bit-reader initialization - fix typo in scale check - add missing scale check
Unified · Split
| @@ -867,7 +867,7 @@ static void* aac_frame_decode(NeAACDecStruct *hDecoder, · 866 unmodified lines | |||
| 867 | uint16_t i; | 867 | uint16_t i; |
| 868 | uint8_t channels = 0; | 868 | uint8_t channels = 0; |
| 869 | uint8_t output_channels = 0; | 869 | uint8_t output_channels = 0; |
| 870 | bitfile ld = {0}; | 870 | bitfile ld; |
| 871 | uint32_t bitsconsumed; | 871 | uint32_t bitsconsumed; |
| 872 | uint16_t frame_len; | 872 | uint16_t frame_len; |
| 873 | void *sample_buffer; | 873 | void *sample_buffer; |
| @@ -226,7 +226,7 @@ static uint8_t rvlc_decode_sf_forward(ic_stream *ics, bitfile *ld_sf, bitfile *l · 225 unmodified lines | |||
| 226 | noise_energy += t; | 226 | noise_energy += t; |
| 227 | } | 227 | } |
| 228 | 228 | ||
| 229 | if (is_position < 0 || is_position > 255) | 229 | if (noise_energy < 0 || noise_energy > 255) |
| 230 | return 4; | 230 | return 4; |
| 231 | ics->scale_factors[g][sfb] = noise_energy; | 231 | ics->scale_factors[g][sfb] = noise_energy; |
| 232 | 232 | ||
| @@ -237,7 +237,7 @@ static uint8_t rvlc_decode_sf_forward(ic_stream *ics, bitfile *ld_sf, bitfile *l · 4 unmodified lines | |||
| 237 | t = rvlc_huffman_sf(ld_sf, ld_esc, +1); | 237 | t = rvlc_huffman_sf(ld_sf, ld_esc, +1); |
| 238 | 238 | ||
| 239 | scale_factor += t; | 239 | scale_factor += t; |
| 240 | if (scale_factor < 0) | 240 | if (scale_factor < 0 || scale_factor > 255) |
| 241 | return 4; | 241 | return 4; |
| 242 | 242 | ||
| 243 | ics->scale_factors[g][sfb] = scale_factor; | 243 | ics->scale_factors[g][sfb] = scale_factor; |