From: Roy Marples Date: Thu, 9 Aug 2007 16:24:36 +0000 (+0000) Subject: Don't use xmalloc in logger as that is self recursive. X-Git-Tag: v3.2.3~217 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8ed838f75bc3dcdb4ae2aedc7ef38e972d16ceb5;p=thirdparty%2Fdhcpcd.git Don't use xmalloc in logger as that is self recursive. --- diff --git a/logger.c b/logger.c index 26634431..cf5cf37e 100644 --- a/logger.c +++ b/logger.c @@ -25,7 +25,6 @@ #include #include -#include "common.h" #include "logger.h" static int loglevel = LOG_WARNING; @@ -100,13 +99,19 @@ void logger(int level, const char *fmt, ...) if (level < LOG_DEBUG || level <= loglevel) { int len = strlen (logprefix); int fmt2len = strlen (fmt) + len + 1; - char *fmt2 = xmalloc (sizeof (char *) * fmt2len); + char *fmt2 = malloc (sizeof (char *) * fmt2len); char *pf = fmt2; - memcpy (pf, logprefix, len); - pf += len; - strlcpy (pf, fmt, fmt2len - len); - vsyslog (level, fmt2, p2); - free (fmt2); + if (fmt2) { + memcpy (pf, logprefix, len); + pf += len; + strlcpy (pf, fmt, fmt2len - len); + vsyslog (level, fmt2, p2); + free (fmt2); + } else { + vsyslog (level, fmt, p2); + syslog (LOG_ERR, "logger: memory exhausted"); + exit (EXIT_FAILURE); + } } va_end (p2);