- 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 | 867 | uint16_t i; |
| 868 | 868 | uint8_t channels = 0; |
| 869 | 869 | uint8_t output_channels = 0; |
| 870 | − bitfile ld = {0}; | |
| 870 | + bitfile ld; | |
| 871 | 871 | uint32_t bitsconsumed; |
| 872 | 872 | uint16_t frame_len; |
| 873 | 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 | 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 | 230 | return 4; |
| 231 | 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 | 237 | t = rvlc_huffman_sf(ld_sf, ld_esc, +1); |
| 238 | 238 | |
| 239 | 239 | scale_factor += t; |
| 240 | − if (scale_factor < 0) | |
| 240 | + if (scale_factor < 0 || scale_factor > 255) | |
| 241 | 241 | return 4; |
| 242 | 242 | |
| 243 | 243 | ics->scale_factors[g][sfb] = scale_factor; |