Hi, I tried to find the bug which prevents me from using pam_ssh, but I was not able to find it so far (output from xdm: "xdm error (pid 2530): Unknown session exit code 2816 from process 2727", I assume proc 2727 is "ssh-agent"). But I think I found some other bugs, please have a look at the attached diff. Bye, Alexander. -- The dark ages were caused by the Y1K problem. http://www.Leidinger.net Alexander @ Leidinger.net GPG fingerprint = 7423 F3E6 3A7E B334 A9CC B10A 1F5F 130A A638 6E7E
Index: authfd.c =================================================================== RCS file: /big/FreeBSD-CVS/src/crypto/openssh/authfd.c,v retrieving revision 1.6 diff -u -r1.6 authfd.c --- authfd.c 2000/09/10 09:35:37 1.6 +++ authfd.c 2000/09/16 15:27:25 @@ -178,7 +178,7 @@ if (sock < 0) return NULL; - auth = xmalloc(sizeof(*auth)); + auth = xmalloc(sizeof(AuthenticationConnection)); auth->fd = sock; buffer_init(&auth->identities); auth->howmany = 0; Index: ssh-agent.c =================================================================== RCS file: /big/FreeBSD-CVS/src/crypto/openssh/ssh-agent.c,v retrieving revision 1.7 diff -u -r1.7 ssh-agent.c --- ssh-agent.c 2000/09/10 09:35:38 1.7 +++ ssh-agent.c 2000/09/16 15:57:22 @@ -571,7 +571,7 @@ break; case AUTH_SOCKET: if (FD_ISSET(sockets[i].fd, readset)) { - slen = sizeof(sunaddr); + slen = SUN_LEN(&sunaddr)+1; sock = accept(sockets[i].fd, (struct sockaddr *) & sunaddr, &slen); if (sock < 0) { perror("accept from AUTH_SOCKET"); @@ -741,7 +741,8 @@ memset(&sunaddr, 0, sizeof(sunaddr)); sunaddr.sun_family = AF_UNIX; strlcpy(sunaddr.sun_path, socket_name, sizeof(sunaddr.sun_path)); - if (bind(sock, (struct sockaddr *) & sunaddr, sizeof(sunaddr)) < 0) { + sunaddr.sun_len = SUN_LEN(&sunaddr)+1; + if (bind(sock, (struct sockaddr *) & sunaddr, sunaddr.sun_len) < 0) { perror("bind"); cleanup_exit(1); }