mirror of https://github.com/thesofproject/sof.git
panic: panicinfo filename OOB fix
Signed-off-by: Adrian Bonislawski <adrian.bonislawski@linux.intel.com>
This commit is contained in:
parent
cba12f12a8
commit
25dd45f443
|
@ -86,7 +86,9 @@ struct sof_ipc_dma_trace_posn {
|
|||
#define SOF_IPC_PANIC_WFI (SOF_IPC_PANIC_MAGIC | 0xa)
|
||||
#define SOF_IPC_PANIC_ASSERT (SOF_IPC_PANIC_MAGIC | 0xb)
|
||||
|
||||
/* panic info include filename and line number */
|
||||
/* panic info include filename and line number
|
||||
* filename array will not include null terminator if fully filled
|
||||
*/
|
||||
struct sof_ipc_panic_info {
|
||||
struct sof_ipc_hdr hdr;
|
||||
uint32_t code; /* SOF_IPC_PANIC_ */
|
||||
|
|
|
@ -99,8 +99,14 @@ void __panic(uint32_t p, char *filename, uint32_t linenum)
|
|||
int strlen;
|
||||
|
||||
strlen = rstrlen(filename);
|
||||
if (strlen >= SOF_TRACE_FILENAME_SIZE) {
|
||||
rmemcpy(panicinfo.filename, filename + strlen -
|
||||
SOF_TRACE_FILENAME_SIZE, SOF_TRACE_FILENAME_SIZE);
|
||||
rmemcpy(panicinfo.filename, "...", 3);
|
||||
} else {
|
||||
rmemcpy(panicinfo.filename, filename, strlen + 1);
|
||||
}
|
||||
panicinfo.linenum = linenum;
|
||||
rmemcpy(panicinfo.filename, filename, strlen + 1);
|
||||
|
||||
panic_rewind(p, 0, &panicinfo);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue