Skip to content

Commit 4965db1

Browse files
authored
Fix heap buffer overflow in test_emscripten_log (#20087)
This was added in #20043
1 parent 3dbcacf commit 4965db1

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

test/emscripten_log/emscripten_log.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,12 @@ void __attribute__((noinline)) bar(int = 0, char * = 0, double = 0) {
9696
delete[] callstack;
9797

9898
// Test that obtaining a truncated callstack works. (https://github.com/emscripten-core/emscripten/issues/2171)
99-
char *buffer = new char[50];
100-
buffer[50] = 0x01; // Magic sentinel that should not change its value.
101-
emscripten_get_callstack(EM_LOG_C_STACK | EM_LOG_NO_PATHS | EM_LOG_FUNC_PARAMS, buffer, 50);
99+
const size_t callstack_buf_len = 50;
100+
char *buffer = new char[callstack_buf_len+1];
101+
buffer[callstack_buf_len] = 0x01; // Magic sentinel that should not change its value.
102+
emscripten_get_callstack(EM_LOG_C_STACK | EM_LOG_NO_PATHS | EM_LOG_FUNC_PARAMS, buffer, callstack_buf_len);
102103
MYASSERT(!!strstr(buffer, "bar(int,"), "Truncated callstack was %s!", buffer);
103-
MYASSERT(buffer[50] == 0x01, "");
104+
MYASSERT(buffer[callstack_buf_len] == 0x01, "");
104105
delete[] buffer;
105106

106107
// Or alternatively use a fixed-size buffer for the callstack (and get a truncated output if it was too small).

0 commit comments

Comments
 (0)