Index: logger.c =================================================================== --- logger.c (revision 11040) +++ logger.c (working copy) @@ -183,14 +183,9 @@ 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)) { @@ -318,8 +313,9 @@ /* 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)))) { + /* TODO: Handle memory allocation failure */ + } chan->type = LOGTYPE_CONSOLE; chan->logmask = 28; /*warning,notice,error */ chan->next = logchannels; @@ -837,11 +833,9 @@ 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]); @@ -851,8 +845,6 @@ 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 @@ -886,8 +878,7 @@ 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; } @@ -921,7 +912,7 @@ 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 */ @@ -930,8 +921,7 @@ free(m->msg); } if (m) { - m->msg = strdup(stuff); - if (m->msg) { + if ((m->msg = ast_strdup(stuff))) { if (last) last->next = m; else @@ -940,7 +930,6 @@ last = m; } else { msgcnt--; - ast_log(LOG_ERROR, "Out of memory\n"); free(m); } } @@ -980,7 +969,7 @@ 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;