From: Roy Marples Date: Fri, 6 Apr 2007 12:30:16 +0000 (+0000) Subject: copy the arg as vsyslog may not do its own copy and use strlcpy instead of strcpy X-Git-Tag: v3.2.3~287 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=16a0ff3c7b323338bd907147db69d6a18d382fce;p=thirdparty%2Fdhcpcd.git copy the arg as vsyslog may not do its own copy and use strlcpy instead of strcpy --- diff --git a/logger.c b/logger.c index 303dadec..64806b5a 100644 --- a/logger.c +++ b/logger.c @@ -98,15 +98,17 @@ void logger(int level, const char *fmt, ...) if (level < LOG_DEBUG || level <= loglevel) { int len = strlen (logprefix); - char *fmt2 = xmalloc (strlen (fmt) + len + 1); + int fmt2len = strlen (fmt) + len + 1; + char *fmt2 = xmalloc (sizeof (char *) * fmt2len); char *pf = fmt2; memcpy (pf, logprefix, len); pf += len; - strcpy (pf, fmt); + strlcpy (pf, fmt, fmt2len - len); vsyslog (level, fmt2, p2); free (fmt2); } + va_end (p2); va_end (p); }