openssh-SNAP-20001016

Gert Doering gert at greenie.muc.de
Sat Oct 28 00:48:13 EST 2000


Hi,

I finally found time today to start hacking SNAP-20001016 on AIX 4.3.3
today, and my findings are mixed.

configure works fine (finds zlib, openssl 0.9.5a) and is happy:


OpenSSH configured has been configured with the following options.
                 User binaries: /gnu/bin
                 User binaries: /gnu/bin
               System binaries: /gnu/sbin
           Configuration files: /etc
               Askpass program: /gnu/libexec/ssh-askpass
                  Manual pages: /gnu/man/catX
                      PID file: /etc
      Random number collection: EGD (/dtmp/egd.entropy)
                Manpage format: cat
                   PAM support: no
            KerberosIV support: no
                   AFS support: no
                 S/KEY support: no
          TCP Wrappers support: no
          MD5 password support: no
   IP address in $DISPLAY hack: no
      Use IPv4 by default hack: no
       Translate v4 in v6 hack: no

             Host: rs6000-ibm-aix4.3.3.0
         Compiler: gcc
   Compiler flags: -g -O2 -Wall -I. -I. -I/usr/local/include -I/gnu/include
     Linker flags:  -L/usr/local/lib -L/gnu/lib -L/gnu
        Libraries: -lnsl -lz  -lcrypto 


Unfortunately, compilation then fails in auth2.c, because "user" is
not defined here:

userauth_reply(Authctxt *authctxt, int authenticated)
{
        /* XXX todo: check if multiple auth methods are needed */
        if (authenticated == 1) {
#ifdef WITH_AIXAUTHENTICATE
                /* We don't have a pty yet, so just label the line as "ssh" */
                if (loginsuccess(user, get_canonical_hostname(), "ssh",
                               &aixloginmsg) < 0)
                        aixloginmsg = NULL;
#endif /* WITH_AIXAUTHENTICATE */


looking what "user" should be here, I find worse things in the other 
place related to AIXAUTHENTICATE:


input_userauth_request(int type, int plen, void *ctxt)
{
        Authctxt *authctxt = ctxt;
        Authmethod *m = NULL;
        char *user, *service, *method;
        int authenticated = 0;

        if (authctxt == NULL)
                fatal("input_userauth_request: no authctxt");
        if (authctxt->attempt++ >= AUTH_FAIL_MAX) {
#ifdef WITH_AIXAUTHENTICATE
                loginfailed(user,get_canonical_hostname(),"ssh");
#endif /* WITH_AIXAUTHENTICATE */
                packet_disconnect("too many failed userauth_requests");
       }

        user = packet_get_string(NULL);
        service = packet_get_string(NULL);
        method = packet_get_string(NULL);


without really knowing what the "packet_get_string" function does, I can
definitely say that the code is wrong here - loginfailed() expects the
current user name to update lastlog accordingly, and "user" is just
a dangling pointer :-(

So someone (who understands these functions) should really look into this.

I will, for the time being, try without WITH_AiXAUTHENTICATE, and then
report again...

gert

-- 
USENET is *not* the non-clickable part of WWW!
                                                           //www.muc.de/~gert/
Gert Doering - Munich, Germany                             gert at greenie.muc.de
fax: +49-89-35655025                        gert.doering at physik.tu-muenchen.de





More information about the openssh-unix-dev mailing list