]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
copy the arg as vsyslog may not do its own copy and use strlcpy instead of strcpy
authorRoy Marples <roy@marples.name>
Fri, 6 Apr 2007 12:30:16 +0000 (12:30 +0000)
committerRoy Marples <roy@marples.name>
Fri, 6 Apr 2007 12:30:16 +0000 (12:30 +0000)
logger.c

index 303dadec18950361ae058d5c0fe5358de54f82b0..64806b5a70aa0b6b69f3ef22f9806a19cd908d7b 100644 (file)
--- 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);
 }