]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - support/nfs/xlog.c
* support/nfs/xlog.c (xlog): Revise buffer-overflow fix to
[nfs-utils.git] / support / nfs / xlog.c
index c4e7ea1d4d6a4cbb51e544d999c86c998ef972fa..b06d12eb23edc62f2dc34c2599f7c4007f7a9bcb 100644 (file)
@@ -142,13 +142,11 @@ xlog(int kind, const char *fmt, ...)
                return;
 
        va_start(args, fmt);
-       vsnprintf(buff, sizeof (buff) - 2, fmt, args);
+       vsnprintf(buff, sizeof (buff), fmt, args);
        va_end(args);
-       buff[sizeof (buff) - 2] = 0;
 
-       if ((n = strlen(buff)) > 0 && buff[n-1] != '\n') {
-               buff[n++] = '\n'; buff[n++] = '\0';
-       }
+       if ((n = strlen(buff)) > 0 && buff[n-1] == '\n')
+               buff[--n] = '\0';
 
        switch (kind) {
        case L_FATAL:
@@ -180,7 +178,7 @@ xlog(int kind, const char *fmt, ...)
                                        tm->tm_year, tm->tm_hour, tm->tm_min,
                                        buff);
 #else
-                       fprintf(log_fp, "%s: %s", log_name, buff);
+                       fprintf(log_fp, "%s: %s\n", log_name, buff);
 #endif
                }
        }