Index: celt/quant_bands.c |
diff --git a/celt/quant_bands.c b/celt/quant_bands.c |
index 79685e17cb5d000135c30b9aa5a2647b7db72030..ac6952c2668be33235892ac6ebc8de58b8e93947 100644 |
--- a/celt/quant_bands.c |
+++ b/celt/quant_bands.c |
@@ -312,6 +312,7 @@ void quant_coarse_energy(const CELTMode *m, int start, int end, int effEnd, |
opus_int32 tell_intra; |
opus_uint32 nstart_bytes; |
opus_uint32 nintra_bytes; |
+ opus_uint32 save_bytes; |
int badness2; |
VARDECL(unsigned char, intra_bits); |
@@ -322,7 +323,10 @@ void quant_coarse_energy(const CELTMode *m, int start, int end, int effEnd, |
nstart_bytes = ec_range_bytes(&enc_start_state); |
nintra_bytes = ec_range_bytes(&enc_intra_state); |
intra_buf = ec_get_buffer(&enc_intra_state) + nstart_bytes; |
- ALLOC(intra_bits, nintra_bytes-nstart_bytes, unsigned char); |
+ save_bytes = nintra_bytes-nstart_bytes; |
+ if (save_bytes == 0) |
+ save_bytes = ALLOC_NONE; |
+ ALLOC(intra_bits, save_bytes, unsigned char); |
/* Copy bits from intra bit-stream */ |
OPUS_COPY(intra_bits, intra_buf, nintra_bytes - nstart_bytes); |