Skip to content

Commit 5854a9f

Browse files
author
Timothy B. Terriberry
committed
Improve extension generator buffer too small test.
Test multiple buffer lengths and ensure we do not write past the end of the provided buffer.
1 parent 2ad8669 commit 5854a9f

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

tests/test_opus_extensions.c

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,24 @@ void test_extensions_generate_fail(void)
149149
unsigned char packet[100];
150150

151151
/* buffer too small */
152-
result = opus_packet_extensions_generate(packet, 4, ext, 4, 1);
153-
expect_true(result == OPUS_BUFFER_TOO_SMALL, "expected OPUS_BUFFER_TOO_SMALL");
152+
{
153+
opus_int32 len;
154+
/* this failure can occur at lots of points, so iterate to check as many
155+
as possible */
156+
for (len=0;len<23;len++)
157+
{
158+
size_t i;
159+
for (i=len;i<sizeof(packet);i++) packet[i] = 0xFE;
160+
result = opus_packet_extensions_generate(packet, len, ext, 4, 1);
161+
expect_true(result == OPUS_BUFFER_TOO_SMALL,
162+
"expected OPUS_BUFFER_TOO_SMALL");
163+
for (i=len;i<sizeof(packet);i++)
164+
{
165+
expect_true(packet[i] == 0xFE,
166+
"expected 0xFE padding to be undisturbed");
167+
}
168+
}
169+
}
154170

155171
/* invalid id */
156172
{

0 commit comments

Comments
 (0)