* logger.c (klog_vsyslog): If krb5_klog_init() is not called, do
authorEzra Peisach <epeisach@mit.edu>
Mon, 18 Jun 2001 01:44:03 +0000 (01:44 +0000)
committerEzra Peisach <epeisach@mit.edu>
Mon, 18 Jun 2001 01:44:03 +0000 (01:44 +0000)
        not pass a NULL pointer to vsprintf for a %s format. Also, if
        syslog() exists on the system, fallback to using this so the
        message is not dropped on the floor.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@13357 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/kadm5/ChangeLog
src/lib/kadm5/logger.c

index 25ee6af383afff25a76a8e12663d1e96846cec32..346843ac5b1090aa85fe24d417a46dc0ea5f310e 100644 (file)
@@ -1,3 +1,10 @@
+2001-06-17  Ezra Peisach  <epeisach@mit.edu>
+
+       * logger.c (klog_vsyslog): If krb5_klog_init() is not called, do
+       not pass a NULL pointer to vsprintf for a %s format. Also, if
+       syslog() exists on the system, fallback to using this so the
+       message is not dropped on the floor.
+
 2001-06-04  Ezra Peisach  <epeisach@mit.edu>
 
        * logger.c (krb5_klog_init): Cleanup assignments in
index 3946e7e6c29b0030765fa7c790f41773a4fd7607..9448018ba28ef4ec97c93dec46c3b5b6e9504f7c 100644 (file)
@@ -864,7 +864,9 @@ klog_vsyslog(priority, format, arglist)
 #endif /* HAVE_STRFTIME */
 #ifdef VERBOSE_LOGS
     sprintf(cp, " %s %s[%ld](%s): ",
-           log_control.log_hostname, log_control.log_whoami, (long) getpid(),
+           log_control.log_hostname ? log_control.log_hostname : "", 
+           log_control.log_whoami ? log_control.log_whoami : "", 
+           (long) getpid(),
            severity2string(priority));
 #else
     sprintf(cp, " ");
@@ -880,6 +882,17 @@ klog_vsyslog(priority, format, arglist)
            ((int *) arglist)[4], ((int *) arglist)[5]);
 #endif /* HAVE_VSPRINTF */
 
+    /*
+     * If the user did not use krb5_klog_init() instead of dropping
+     * the request on the floor, syslog it - if it exists
+     */
+#ifdef HAVE_SYSLOG
+    if (log_control.log_nentries == 0) {
+       /* Log the message with our header trimmed off */
+       syslog(priority, "%s", syslogp);
+    }
+#endif
+
     /*
      * Now that we have the message formatted, perform the output to each
      * logging specification.