init: do not eat last char in messages;
authorDenis Vlasenko <vda.linux@googlemail.com>
Tue, 9 Dec 2008 21:23:31 +0000 (21:23 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Tue, 9 Dec 2008 21:23:31 +0000 (21:23 -0000)
 do not print duplicate "init:" prefix to syslog

init/init.c

index 1caf45b8d40e51803ec0d92350bd9e7ff1a37874..10f5ba68de69b4e17956631c4d584fc077c30ab5 100644 (file)
@@ -118,18 +118,18 @@ static void message(int where, const char *fmt, ...)
 
        msg[0] = '\r';
        va_start(arguments, fmt);
-       l = vsnprintf(msg + 1, sizeof(msg) - 2, fmt, arguments);
-       if (l > sizeof(msg) - 2)
-               l = sizeof(msg) - 2;
+       l = 1 + vsnprintf(msg + 1, sizeof(msg) - 2, fmt, arguments);
+       if (l > sizeof(msg) - 1)
+               l = sizeof(msg) - 1;
        msg[l] = '\0';
        va_end(arguments);
 
        if (ENABLE_FEATURE_INIT_SYSLOG) {
-               /* Log the message to syslogd */
                if (where & L_LOG) {
-                       /* don't print out "\r" */
-                       openlog(applet_name, 0, LOG_DAEMON);
-                       syslog(LOG_INFO, "init: %s", msg + 1);
+                       /* Log the message to syslogd */
+                       openlog("init", 0, LOG_DAEMON);
+                       /* don't print "\r" */
+                       syslog(LOG_INFO, "%s", msg + 1);
                        closelog();
                }
                msg[l++] = '\n';