mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-02 11:06:31 +00:00
pbx_lua.c: segfault when pass null data to term_color function
This can be reproduced under certain curcomstences. For example: call app.playback from lua with invalid data: app.playback({}). pbx_lua.c will try to get data for this playback using lua_tostring function. This function returs NULL for everything but strings and numbers. Then, it calls term_color with NULL data. term_color function can call(if we don't use vt100 compat term) ast_copy_string with NULL inbuf which cause segfault. bt example: ast_copy_string (size=8192, src=0x0, dst=0x7fe44b4be8b0) at /usr/src/asterisk/asterisk-20.11.0/include/asterisk/strings.h:412 Resolves: https://github.com/asterisk/asterisk/issues/1363
This commit is contained in:
@@ -222,7 +222,7 @@ static int lua_pbx_exec(lua_State *L)
|
||||
exten, context, priority,
|
||||
term_color(tmp, app_name, COLOR_BRCYAN, 0, sizeof(tmp)),
|
||||
term_color(tmp2, ast_channel_name(chan), COLOR_BRMAGENTA, 0, sizeof(tmp2)),
|
||||
term_color(tmp3, data, COLOR_BRMAGENTA, 0, sizeof(tmp3)));
|
||||
term_color(tmp3, data ? data : "", COLOR_BRMAGENTA, 0, sizeof(tmp3)));
|
||||
|
||||
lua_getfield(L, LUA_REGISTRYINDEX, "autoservice");
|
||||
autoservice = lua_toboolean(L, -1);
|
||||
|
Reference in New Issue
Block a user