Hi all

I can reproduce the problem when I run saslauthd with authmech shadow:

    saslauthd -a shadow

and then try to authenticate users that have a crippled /etc/shadow
entry. By crippled I mean ! or * as password entry, as for root, mail,
nobody.

When I run the 2.1.25 stock source with debugging symbols in gdb with
"-a shadow -n 1 -d -m /var/run/saslauthd/mux" as param, I get:

Program received signal SIGSEGV, Segmentation fault.
0xb7e6e6f1 in ?? () from /lib/i386-linux-gnu/libc.so.6
(gdb) where
#0  0xb7e6e6f1 in ?? () from /lib/i386-linux-gnu/libc.so.6
#1  0xb7e6e326 in strdup () from /lib/i386-linux-gnu/libc.so.6
#2  0x0804b910 in auth_shadow (login=0xbffff098 "root", 
    password=0xbffff199 "dfsdf", service=0xbffff29a "ldap", 
    realm=0xbffff39b "") at auth_shadow.c:188
#3  0x0804ed3f in do_auth (_login=_login@entry=0xbffff098 "root", 
    password=password@entry=0xbffff199 "dfsdf", 
    service=service@entry=0xbffff29a "ldap", realm=realm@entry=0xbffff39b "")
    at saslauthd-main.c:410
#4  0x0804dd17 in do_request (conn_fd=conn_fd@entry=9) at ipc_unix.c:426
#5  0x0804e547 in ipc_loop () at ipc_unix.c:277
#6  0x080499c1 in main (argc=8, argv=0xbffff5e4) at saslauthd-main.c:369

Offending line is:

      cpw = strdup((const char *)crypt(password, sp->sp_pwdp));

where crypt() returns NULL for the crippled shadow entries. Proposed
patch:

    char *encpwd = crypt(password, sp->sp_pwdp);
    if (encpwd == NULL) {
        if (flags & VERBOSE) {
            syslog(LOG_DEBUG, "DEBUG: auth_shadow: crypt returned NULL");
        }
        RETURN("NO");
    }
    cpw = strdup((const char *)encpwd);

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1187001

Title:
  saslauthd[26791]: segfault at 0 ip b71de6f1 sp bfcd2d9c error 4 in
  libc-2.17.so[b7160000+1ad000]

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cyrus-sasl2/+bug/1187001/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to