Author: mikej Date: Fri Nov 10 11:30:02 2006 New Revision: 3306 Modified: freeswitch/trunk/src/switch_log.c freeswitch/trunk/src/switch_utils.c Log: make logger handle a bit more bad input. Modified: freeswitch/trunk/src/switch_log.c ============================================================================== --- freeswitch/trunk/src/switch_log.c (original) +++ freeswitch/trunk/src/switch_log.c Fri Nov 10 11:30:02 2006 @@ -169,7 +169,8 @@ int ret = 0; va_list ap; FILE *handle; - char *filep = switch_cut_path(file); + char *filep = (file ? switch_cut_path(file): ""); + const char *funcp = (func ? func : ""); char *content = NULL; switch_time_t now = switch_time_now(); uint32_t len; @@ -186,9 +187,9 @@ switch_time_exp_lt(&tm, now); switch_strftime(date, &retsize, sizeof(date), "%Y-%m-%d %T", &tm); - len = (uint32_t)(strlen(extra_fmt) + strlen(date) + strlen(filep) + 32 + strlen(func) + strlen(fmt)); + len = (uint32_t)(strlen(extra_fmt) + strlen(date) + strlen(filep) + 32 + strlen(funcp) + strlen(fmt)); new_fmt = malloc(len+1); - snprintf(new_fmt, len, extra_fmt, date, LEVELS[level], filep, line, func, 128, fmt); + snprintf(new_fmt, len, extra_fmt, date, LEVELS[level], filep, line, funcp, 128, fmt); fmt = new_fmt; } @@ -216,7 +217,7 @@ if (switch_event_running() == SWITCH_STATUS_SUCCESS && switch_event_create(&event, SWITCH_EVENT_LOG) == SWITCH_STATUS_SUCCESS) { switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Log-Data", "%s", data); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Log-File", "%s", filep); - switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Log-Function", "%s", func); + switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Log-Function", "%s", funcp); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Log-Line", "%d", line); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Log-Level", "%d", (int)level); switch_event_fire(&event); @@ -231,7 +232,7 @@ if ((node = malloc(sizeof(*node)))) { node->data = data; node->file = strdup(filep); - node->func = strdup(func); + node->func = strdup(funcp); node->line = line; node->level = level; node->content = content; Modified: freeswitch/trunk/src/switch_utils.c ============================================================================== --- freeswitch/trunk/src/switch_utils.c (original) +++ freeswitch/trunk/src/switch_utils.c Fri Nov 10 11:30:02 2006 @@ -167,13 +167,17 @@ char delims[] = "/\\"; char *i; - for (i = delims; *i; i++) { - p = in; - while ((p = strchr(p, *i)) != 0) { - ret = ++p; + if (in) { + for (i = delims; *i; i++) { + p = in; + while ((p = strchr(p, *i)) != 0) { + ret = ++p; + } } + return ret; + } else { + return NULL; } - return ret; } SWITCH_DECLARE(switch_status_t) switch_socket_create_pollfd(switch_pollfd_t *poll, switch_socket_t *sock,
participants (1)
-
Freeswitch SVN