1
0
Fork 0
forked from len0rd/rockbox

Fix non aligned crashes with tlsf

When the starting address of the plugin buffer
 is not aligned to 8 bytes crashes occur in tlsf
(on ARM atleast)

Change-Id: I655500c25e1c8f84b4a2418e9ec5c5948e4bea82
This commit is contained in:
William Wilgus 2019-07-17 00:39:14 -05:00
parent 321de68b21
commit e1475a38ef
2 changed files with 4 additions and 2 deletions

View file

@ -921,7 +921,8 @@ int plugin_load(const char* plugin, const void* parameter)
return -1; return -1;
} }
#if (CONFIG_PLATFORM & PLATFORM_NATIVE) #if (CONFIG_PLATFORM & PLATFORM_NATIVE)
plugin_size = hdr->end_addr - pluginbuf; /* tlsf crashes observed on arm with 0x4 aligned addresses */
plugin_size = ALIGN_UP(hdr->end_addr - pluginbuf, 0x8);
#else #else
plugin_size = 0; plugin_size = 0;
#endif #endif

View file

@ -508,7 +508,8 @@ size_t add_new_area(void *area, size_t area_size, void *mem_pool)
/* FW 28-10-17: disabled memset due to crashes on ARM. Functions /* FW 28-10-17: disabled memset due to crashes on ARM. Functions
* fine without it. */ * fine without it. */
/* memset(area, 0, area_size); */ /* BILGUS 17-7-19 re-enabled after setting pluginbuf aligned to 8 bytes */
memset(area, 0, area_size);
ptr = tlsf->area_head; ptr = tlsf->area_head;
ptr_prev = 0; ptr_prev = 0;