Commit 6effd3d
tr_array: fix use after free error after mbed_trace_free() is called
If one called mbed_trace_free() but continued using the trace (which
is a supported use case), the already freed tmp_data buffer was used
by tr_array().
This was spotted by Valgrind on some unit tests which do enable the
trace only temporarily for some of the tests.
Error being fixed in this PR:
--8<--8<--8<---
==5865== Invalid write of size 1
==5865== at 0x2639BB: mbed_trace_array (mbed_trace.c:569)
<...>
==5865== Address 0x5dc79d0 is 0 bytes inside a block of size 128 free'd
==5865== at 0x4C32D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5865== by 0x262723: mbed_trace_free (mbed_trace.c:192)
<...>
==5865== Block was alloc'd at
==5865== at 0x4C31B0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5865== by 0x262548: mbed_trace_init (mbed_trace.c:162)
<...>1 parent 6c50a18 commit 6effd3d
1 file changed
+1
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
209 | 209 | | |
210 | 210 | | |
211 | 211 | | |
| 212 | + | |
212 | 213 | | |
213 | 214 | | |
214 | 215 | | |
| |||
0 commit comments