Package: sasl2-bin
Version: 2.1.27+dfsg-1+deb10u1
Severity: important

saslauthd logs to /var/log/auth.log through syslog.  There are a number of 
other programs that are monitoring this log for entries that match a specific 
format, for example logwatch.   There should be lines like:

saslauthd[892]: do_auth             : auth failure: [user=foobar] 
[service=smtp] [realm=example.com] [mech=pam] [reason=PAM auth error]

When an unsuccessful login attempt has occured due to an incorrect passowrd.  
Unfortunately it is presently generating:

saslauthd[892]:                     : auth failure: [user=foobar] 
[service=smtp] [realm=example.com] [mech=pam] [reason=PAM auth error]

The matching string do_auth is missing.  I beleive saslauthd-main.c line 433 
which is:

 logger(L_INFO, L_FUNC, "auth failure: [user=%s] [service=%s] [realm=%s] 
[mech=%s] [reason=%s]", \
                        login, service, realm, auth_mech->name,
                        strlen(response) >= 4 ? response+3 : "Unknown");

generates this log entry but L_FUNC must not be set as the logger function 
defined in utils.c line 83:

syslog(priority, "%-16s: %s", function, buffer);

should have do_auth for function but it doesn't.  Looking deeper it seems that 
utils.h attempts to be slick and determine function called by:

/* some magic to grab function names */
#ifdef HAVE_FUNC
# define L_FUNC __func__
# define HAVE_L_FUNC 1
#elif defined(HAVE_PRETTY_FUNCTION)
# define L_FUNC __PRETTY_FUNCTION__
# define HAVE_L_FUNC 1
#elif defined(HAVE_FUNCTION)
# define L_FUNC __FUNCTION__
# define HAVE_L_FUNC 1
#else
# define L_FUNC ""
# undef HAVE_L_FUNC
#endif

So it looks like in debian the package does not define HAVE_FUNC which leads to 
L_FUNC being set to " ".

I downloaded the source from the master and it seems that gcc implements this.  
Compiling on my desktop I get:

checking whether gcc implements __func__... yes

Any chance this package can be compiled with this feature?

-- System Information:
Debian Release: 10.3
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-8-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_CA:en (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages sasl2-bin depends on:
ii  db-util                5.3.1+nmu1
ii  debconf [debconf-2.0]  1.5.71
ii  init-system-helpers    1.56+nmu1
ii  libc6                  2.28-10
ii  libdb5.3               5.3.28+dfsg1-0.5
ii  libkrb5-3              1.17-3
ii  libldap-2.4-2          2.4.47+dfsg-3+deb10u1
ii  libpam0g               1.3.1-5
ii  libsasl2-2             2.1.27+dfsg-1+deb10u1
ii  libssl1.1              1.1.1d-0+deb10u2
ii  lsb-base               10.2019051400

sasl2-bin recommends no packages.

sasl2-bin suggests no packages.

-- Configuration Files:
/etc/default/saslauthd changed:
START=yes
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="pam"
MECH_OPTIONS=""
THREADS=5
OPTIONS="-c -m /var/run/saslauthd"


-- debconf information:
  cyrus-sasl2/upgrade-sasldb2-failed:
  cyrus-sasl2/upgrade-sasldb2-backup-failed:
  cyrus-sasl2/purge-sasldb2: false
  cyrus-sasl2/backup-sasldb2: /var/backups/sasldb2.bak

Reply via email to