mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-13 16:21:01 +00:00
Fix segfault when reloading chan_misdn.
If more ports were specified than configured in misdn.conf a reload would crash asterisk. The problem was the unconfigured port was using data from the previously configured port. When the data for an unconfigured port was freed a crash would result from the double free. (closes issue #12113) Reported by: agupta Patches: bug12113.patch uploaded by jpeeler (license 325) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@212498 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1001,6 +1001,11 @@ static void _build_port_config (struct ast_variable *v, char *cat)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < (max_ports + 1); ++i) {
|
for (i = 0; i < (max_ports + 1); ++i) {
|
||||||
|
if (i > 0 && cfg_for_ports[0]) {
|
||||||
|
/* default category, will populate the port_cfg with additional port
|
||||||
|
categories in subsequent calls to this function */
|
||||||
|
memset(cfg_tmp, 0, sizeof(cfg_tmp));
|
||||||
|
}
|
||||||
if (cfg_for_ports[i]) {
|
if (cfg_for_ports[i]) {
|
||||||
memcpy(port_cfg[i], cfg_tmp, sizeof(cfg_tmp));
|
memcpy(port_cfg[i], cfg_tmp, sizeof(cfg_tmp));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user