Re: saslauthd dying

From: Jeremy Rumpf (jrumpf at heavyload dot net)
Date: Fri Nov 05 2004 - 18:43:17 EST

  • Next message: Jeremy Rumpf: "Re: saslauthd dying"

    On Saturday 06 November 2004 03:55 am, synrat wrote:
    [snip]

    > program terminated by signal SEGV (no mapping at the fault address)
    > Current function is saslauthd_pam_conv
    > 112 my_resp[i].resp = strdup(my_appdata->password);
    > (dbx) where
    > =>[1] saslauthd_pam_conv(num_msg = 1, msg = 0xffbfb254, resp =
    > 0xffbff2c0, appdata_ptr = (nil)), line 112 in "auth_pam.c"

    Here is the problem, the pam libraries in Solaris do not return the
    appdata_ptr as it should be. Pam defines a user defined data pointer that the
    pam caller can use to communicate user specific data to the pam callback
    function. This data pointer should be passed through the pam stack and return
    intact back to the callback function.

    So auth_pam specifies the appdata_ptr to pam_start by setting it in the
    pam_conv.appdata_ptr structure:

     my_conv.conv = saslauthd_pam_conv;
     my_conv.appdata_ptr = &my_appdata;

     rc = pam_start(service, login, &my_conv, &pamh);

    Then once the pam_authenticate is called, the pam libraries will callback to a
    function specified by auth_pam (saslauthd_pam_conv). Saslauthd_pam_conv tries
    to recover the appdata_ptr, but instead of being the original appdata_ptr, it
    is now NULL.

    I've run into this problem once before with Solaris when developing a pam
    plugin for the iPlanet (Netscape) directory server.

    This is a Solaris pam issue and not directly related to saslauthd.

    > [2] __get_authtok(0x157c0, 0x1, 0xffbfb2b8, 0x0, 0xffbff2c0,
    > 0xfeea9574), at 0xfee94f78
    > [3] pam_sm_authenticate(0x0, 0x0, 0xfee96890, 0x42560, 0xfeea8000,
    > 0xff312df4), at 0xfee92724
    > [4] run_stack(0x0, 0xff327024, 0x9, 0x0, 0x1, 0xff327100), at 0xff312e14
    > [5] pam_authenticate(0x419a0, 0x80000000, 0xffbff3f8, 0xffbff3f4,
    > 0x0, 0x0), at 0xff31311c
    > [6] auth_pam(login = 0xffbffa5f "synrat", password = 0xffbff95e
    > "1123", service = 0xffbff85d "smtp", realm = 0xffbff75c ""), line 208 in
    > "auth_pam.c"
    > [7] do_auth(_login = 0xffbffa5f "synrat", password = 0xffbff95e
    > "1123", service = 0xffbff85d "smtp", realm = 0xffbff75c ""), line 399 in
    > "saslauthd-main.c"
    > [8] do_request(conn_fd = 7), line 426 in "ipc_unix.c"
    > [9] ipc_loop(), line 277 in "ipc_unix.c"
    > [10] main(argc = 3, argv = 0xffbffcdc), line 358 in "saslauthd-main.c"
    >
    > Derrick J Brashear wrote:
    > > On Nov 5, 2004, at 7:03 PM, synrat wrote:
    > >> this is what I get when supplying the wrong password:
    > >
    > > ...
    > >
    > >> Segmentation Fault (core dumped)
    > >
    > > Ok, so get a backtrace from the core.
    > >
    > > dbx saslauthd core
    > > where

    HTH,
    Jeremy


  • Next message: Jeremy Rumpf: "Re: saslauthd dying"





    Hosted Email Solutions

    Invaluement Anti-Spam DNSBLs



    Powered By FreeBSD   Powered By FreeBSD