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)) {
/* 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;
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]);
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
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;
}
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 */
free(m->msg);
}
if (m) {
- m->msg = strdup(stuff);
- if (m->msg) {
+ if ((m->msg = ast_strdup(stuff))) {
if (last)
last->next = m;
else
last = m;
} else {
msgcnt--;
- ast_log(LOG_ERROR, "Out of memory\n");
free(m);
}
}
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;