diff options
| author | Marcin Bukat <marcin.bukat@gmail.com> | 2014-01-09 21:37:07 +0100 |
|---|---|---|
| committer | Marcin Bukat <marcin.bukat@gmail.com> | 2014-01-16 10:17:39 +0100 |
| commit | 7ab237b025cbb4c25d345604da32e894379c1721 (patch) | |
| tree | 92d147029519c55d57db4273066d57b960ad7158 /firmware/include/core_alloc.h | |
| parent | 7f5dce4116bf4e62e0cd3ef16730157e17625e1c (diff) | |
| download | rockbox-7ab237b025cbb4c25d345604da32e894379c1721.zip rockbox-7ab237b025cbb4c25d345604da32e894379c1721.tar.gz rockbox-7ab237b025cbb4c25d345604da32e894379c1721.tar.bz2 rockbox-7ab237b025cbb4c25d345604da32e894379c1721.tar.xz | |
buflib: Add crc field protecting buflib cookie integrity
This should catch the case of buffer misuse which results
in corrupted cookie of next allocation. The check is performed
on move_block() so it may be a bit late.
There is buflib_check_valid() provided which checks the
integrity of all cookies for given context.
On DEBUG build with --sdl-thread this check is carried out
for core_ctx on every context switch to catch problems earlier.
Change-Id: I999d4576084592394e3dbd3bdf0f32935ff5f601
Reviewed-on: http://gerrit.rockbox.org/711
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Diffstat (limited to 'firmware/include/core_alloc.h')
| -rw-r--r-- | firmware/include/core_alloc.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/firmware/include/core_alloc.h b/firmware/include/core_alloc.h index a100b7c..095cb5d 100644 --- a/firmware/include/core_alloc.h +++ b/firmware/include/core_alloc.h @@ -17,6 +17,9 @@ bool core_shrink(int handle, void* new_start, size_t new_size); int core_free(int handle); size_t core_available(void); size_t core_allocatable(void); +#ifdef DEBUG +void core_check_valid(void); +#endif /* DO NOT ADD wrappers for buflib_buffer_out/in. They do not call * the move callbacks and are therefore unsafe in the core */ |