Received: from pch.mit.edu (PCH.MIT.EDU [18.7.21.90]) by krbdev.mit.edu (8.12.9) with ESMTP id l7N00HHW020173; Wed, 22 Aug 2007 20:00:17 -0400 (EDT) Received: from pch.mit.edu (pch.mit.edu [127.0.0.1]) by pch.mit.edu (8.13.6/8.12.8) with ESMTP id l7N00Ccn005175; Wed, 22 Aug 2007 20:00:12 -0400 Received: from pacific-carrier-annex.mit.edu (PACIFIC-CARRIER-ANNEX.MIT.EDU [18.7.21.83]) by pch.mit.edu (8.13.6/8.12.8) with ESMTP id l7MK6kWn024000 for ; Wed, 22 Aug 2007 16:06:46 -0400 Received: from mit.edu (M24-004-BARRACUDA-2.MIT.EDU [18.7.7.112]) by pacific-carrier-annex.mit.edu (8.13.6/8.9.2) with ESMTP id l7MK6hJJ016958 for ; Wed, 22 Aug 2007 16:06:44 -0400 (EDT) Received: from outbound2.ucsd.edu (localhost [127.0.0.1]) by mit.edu (Spam Firewall) with ESMTP id 356329658FA for ; Wed, 22 Aug 2007 16:06:42 -0400 (EDT) Received: from outbound2.ucsd.edu (outbound2.ucsd.edu [132.239.1.206]) by mit.edu with ESMTP id tkDkQswgtgH6FKr0 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 22 Aug 2007 16:06:42 -0400 (EDT) Received: from newsmtp.ucsd.edu (newsmtp.ucsd.edu [132.239.1.22]) by outbound2.ucsd.edu (8.13.6/8.13.6) with ESMTP id l7MK6e5w020439 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 22 Aug 2007 13:06:41 -0700 (PDT) Domainkey-Signature: a=rsa-sha1; s=2007001; d=ucsd.edu; c=simple; q=dns; b=WDL29DeQq0sgSHJWUROJoPH8Yk+5gtlr8VZmyvCvn59RFvh3v7Uir6QQH2dY6l9BK Fg+L17NWCEMYGjrNcI75Q== Received: from karoshi.ucsd.edu (karoshi.ucsd.edu [132.239.1.136]) by newsmtp.ucsd.edu (8.13.6/8.13.6) with ESMTP id l7MK6e6b055705 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 22 Aug 2007 13:06:40 -0700 (PDT) Received: from karoshi.ucsd.edu (localhost.ucsd.edu [127.0.0.1]) by karoshi.ucsd.edu (8.13.6/8.12.9) with ESMTP id l7MK6e1g052826 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Wed, 22 Aug 2007 13:06:40 -0700 (PDT) X-Authentication-Warning: karoshi.ucsd.edu: Host localhost.ucsd.edu [127.0.0.1] claimed to be karoshi.ucsd.edu Received: (from brian@localhost) by karoshi.ucsd.edu (8.13.6/8.12.3/Submit) id l7MK6eJ4052825 for krb5-bugs@mit.edu; Wed, 22 Aug 2007 13:06:40 -0700 (PDT) Date: Wed, 22 Aug 2007 13:06:40 -0700 (PDT) From: Brian Kantor Message-ID: <200708222006.l7MK6eJ4052825@karoshi.ucsd.edu> To: krb5-bugs@mit.edu Subject: 'syslog' logging in krb5-1.6.2 error X-Spam-Score: 0.00 X-Spam-Flag: NO X-Scanned-BY: MIMEDefang 2.42 X-Mailman-Approved-At: Wed, 22 Aug 2007 20:00:11 -0400 X-Beenthere: krb5-bugs-incoming@mailman.mit.edu X-Mailman-Version: 2.1.6 Precedence: list Sender: krb5-bugs-incoming-bounces@PCH.MIT.EDU Errors-To: krb5-bugs-incoming-bounces@PCH.MIT.EDU X-RT-Original-Encoding: iso-8859-1 Content-Length: 1635 An entry of [logging] default = SYSLOG:INFO:LOCAL0 in /etc/krb5.conf, with NO logging specifications in kdc.conf, causes both krb5kdc and kadmind to log entries twice in syslog. This is caused by a duplication of logging destinations in the list of log outputs. The following patch to lib/kadm5/logger.c provides a workaround to keep this from occuring. - Brian diff -ubB {krb5-1.6.2-dist,krb5-1.6.2}/src/lib/kadm5/logger.c --- krb5-1.6.2-dist/src/lib/kadm5/logger.c Wed Apr 4 14:08:05 2007 +++ krb5-1.6.2/src/lib/kadm5/logger.c Wed Aug 22 11:59:59 2007 @@ -356,7 +356,9 @@ const char *logging_profent[3]; const char *logging_defent[3]; char **logging_specs; + int n; char *cp, *cp2; char savec = '\0'; int error; @@ -635,8 +648,19 @@ if (log_control.log_entries[i].log_type == K_LOG_NONE) { fprintf(stderr, lspec_parse_err_1, whoami, cp); fprintf(stderr, lspec_parse_err_2, whoami); + continue; } - else + + /* check for duplicate log specs */ + for (n=0; n < i; n++) { + /* XXX workaround: do more extensive checking someday */ + if (log_control.log_entries[i].log_type == log_control.log_entries[n].log_type) { + log_control.log_entries[i].log_type = K_LOG_NONE; + continue; + } + } + ngood++; } } @@ -674,8 +700,9 @@ gethostname(log_control.log_hostname, MAXHOSTNAMELEN); log_control.log_hostname[MAXHOSTNAMELEN] = '\0'; } + #ifdef HAVE_OPENLOG - if (do_openlog) { + if (do_openlog && !log_control.log_opened) { openlog(whoami, LOG_NDELAY|LOG_PID, log_facility); log_control.log_opened = 1; }