diff options
-rw-r--r-- | logger.c | 30 |
1 files changed, 9 insertions, 21 deletions
@@ -184,14 +184,9 @@ static struct logchannel *make_logchannel(char *channel, char *components, int l CODE *cptr; #endif - if (ast_strlen_zero(channel)) + if (ast_strlen_zero(channel) || !(chan = ast_calloc(1, sizeof(*chan)))) return NULL; - chan = malloc(sizeof(struct logchannel)); - if (!chan) /* Can't allocate memory */ - return NULL; - - memset(chan, 0, sizeof(struct logchannel)); if (!strcasecmp(channel, "console")) { chan->type = LOGTYPE_CONSOLE; } else if (!strncasecmp(channel, "syslog", 6)) { @@ -319,8 +314,8 @@ static void init_logger_chain(void) /* If no config file, we're fine, set default options. */ if (!cfg) { fprintf(stderr, "Unable to open logger.conf: %s\n", strerror(errno)); - chan = malloc(sizeof(struct logchannel)); - memset(chan, 0, sizeof(struct logchannel)); + if (!(chan = ast_calloc(1, sizeof(*chan)))) + return; chan->type = LOGTYPE_CONSOLE; chan->logmask = 28; /*warning,notice,error */ chan->next = logchannels; @@ -821,11 +816,9 @@ void ast_backtrace(void) void **addresses; char **strings; - addresses = calloc(MAX_BACKTRACE_FRAMES, sizeof(void *)); - if (addresses) { + if ((addresses = ast_calloc(MAX_BACKTRACE_FRAMES, sizeof(*addresses)))) { count = backtrace(addresses, MAX_BACKTRACE_FRAMES); - strings = backtrace_symbols(addresses, count); - if (strings) { + if ((strings = backtrace_symbols(addresses, count))) { ast_log(LOG_DEBUG, "Got %d backtrace record%c\n", count, count != 1 ? 's' : ' '); for (i=0; i < count ; i++) { ast_log(LOG_DEBUG, "#%d: [%08X] %s\n", i, (unsigned int)addresses[i], strings[i]); @@ -835,8 +828,6 @@ void ast_backtrace(void) ast_log(LOG_DEBUG, "Could not allocate memory for backtrace\n"); } free(addresses); - } else { - ast_log(LOG_DEBUG, "Could not allocate memory for backtrace\n"); } #else #ifdef Linux @@ -870,8 +861,7 @@ void ast_verbose(const char *fmt, ...) time(&t); localtime_r(&t, &tm); strftime(date, sizeof(date), dateformat, &tm); - datefmt = alloca(strlen(date) + 3 + strlen(fmt) + 1); - if (datefmt) { + if ((datefmt = alloca(strlen(date) + 3 + strlen(fmt) + 1))) { sprintf(datefmt, "[%s] %s", date, fmt); fmt = datefmt; } @@ -905,7 +895,7 @@ void ast_verbose(const char *fmt, ...) if (complete) { if (msgcnt < MAX_MSG_QUEUE) { /* Allocate new structure */ - if ((m = malloc(sizeof(*m)))) + if ((m = ast_malloc(sizeof(*m)))) msgcnt++; } else { /* Recycle the oldest entry */ @@ -914,8 +904,7 @@ void ast_verbose(const char *fmt, ...) free(m->msg); } if (m) { - m->msg = strdup(stuff); - if (m->msg) { + if ((m->msg = ast_strdup(stuff))) { if (last) last->next = m; else @@ -924,7 +913,6 @@ void ast_verbose(const char *fmt, ...) last = m; } else { msgcnt--; - ast_log(LOG_ERROR, "Out of memory\n"); free(m); } } @@ -964,7 +952,7 @@ int ast_register_verbose(void (*v)(const char *string, int opos, int replacelast struct msglist *m; struct verb *tmp; /* XXX Should be more flexible here, taking > 1 verboser XXX */ - if ((tmp = malloc(sizeof (struct verb)))) { + if ((tmp = ast_malloc(sizeof(*tmp)))) { tmp->verboser = v; ast_mutex_lock(&msglist_lock); tmp->next = verboser; |