changeset 87:8a1c2fd9e7e2 draft

copy the arg as vsyslog may not do its own copy and use strlcpy instead of strcpy
author Roy Marples <roy@marples.name>
date Fri, 06 Apr 2007 12:30:16 +0000
parents 231c5353f0dd
children 7c31bbcf079c
files logger.c
diffstat 1 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/logger.c	Thu Apr 05 18:11:05 2007 +0000
+++ b/logger.c	Fri Apr 06 12:30:16 2007 +0000
@@ -98,15 +98,17 @@
   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);
 }