Package: inetutils-syslogd
Version: 2:1.9-2
Severity: normal
Tags: upstream

Dear Maintainer,


   * What led up to the situation?
Remote logging using inetutils-syslogd
   * What exactly did you do (or not do) that was effective (or
     ineffective)?
Kernel on remote machine sent log message to log host
   * What was the outcome of this action?
Message being received as uucp.warn
   * What outcome did you expect instead?
Message being received as kern.warn (or possibly user.warn when reading the
syslogd.c code)


This is a victim of different implementations of LOG_MAKEPRI() macro, namely:
BSD and glibc post 2.17:
#define LOG_MAKEPRI(fac, pri)   ((fac) | (pri))
vs
glibc pre 2.17:
#define LOG_MAKEPRI(fac, pri)   (((fac) << 3) | (pri))

in printline():

  /* don't allow users to log kernel messages */
  if (LOG_FAC (pri) == LOG_KERN)
    pri = LOG_MAKEPRI (LOG_USER, LOG_PRI (pri));

LOG_USER here is (1<<3)
LOG_MAKEPRI applies another layer of <<3 to that, turning into:
((((1) << 3) << 3) | (pri))

BSD changed LOG_MAKEPRI() not to apply (x<<3) to facility, about 16 years ago.
Glibc did that change in 2.17 about 1.5 year ago (post-wheezy). inetutils-
syslogd in wheezy uses LOG_MAKEPRI as if it was BSD style, but in reality
affected by glibc-pre-2.17 style.
Changing the call to:
pri = LOG_MAKEPRI(LOG_FAC(LOG_USER), LOG_PRI(pri));
... will work for wheezy, but break for jessie+. No idea how for example
wheezy-debian-kFreeBSD will act.



-- System Information:
Debian Release: 7.2
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.2.0-4-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/bash

Versions of packages inetutils-syslogd depends on:
ii  libc6     2.13-38
ii  lsb-base  4.1+Debian8+deb7u1
ii  netbase   5.0

inetutils-syslogd recommends no packages.

inetutils-syslogd suggests no packages.

-- Configuration Files:
/etc/default/inetutils-syslogd changed [not included]
/etc/logrotate.d/inetutils-syslogd [Errno 2] No such file or directory: 
u'/etc/logrotate.d/inetutils-syslogd'
/etc/syslog.conf changed [not included]

-- no debconf information


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to