summaryrefslogtreecommitdiffstats
path: root/lib/libpam
diff options
context:
space:
mode:
authormarkm <markm@FreeBSD.org>2001-08-11 12:37:55 +0000
committermarkm <markm@FreeBSD.org>2001-08-11 12:37:55 +0000
commit384d536a125c6024cf7043f11aa952cde9c8c87e (patch)
treed01501f3e1469e10e09a9ca4c8f567c7d323542c /lib/libpam
parent00e7d7eeeadb3a137d18b43f84cefcfda5bbc902 (diff)
downloadFreeBSD-src-384d536a125c6024cf7043f11aa952cde9c8c87e.zip
FreeBSD-src-384d536a125c6024cf7043f11aa952cde9c8c87e.tar.gz
Fix:
/usr/src/lib/libpam/modules/pam_ssh/pam_ssh.c has couple of bugs which cause: 1) xdm dumps core 2) ssh1 private key is not passed to ssh-agent 3) ssh2 RSA key seems not handled properly (just a guess from source) 4) ssh_get_authentication_connectionen() fails to get connection because of SSH_AUTH_SOCK not defined. PR: 29609 Submitted by: Takanori Saneto <sanewo@ba2.so-net.ne.jp>
Diffstat (limited to 'lib/libpam')
-rw-r--r--lib/libpam/modules/pam_ssh/pam_ssh.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/lib/libpam/modules/pam_ssh/pam_ssh.c b/lib/libpam/modules/pam_ssh/pam_ssh.c
index 9a9a3b8..ee27df0 100644
--- a/lib/libpam/modules/pam_ssh/pam_ssh.c
+++ b/lib/libpam/modules/pam_ssh/pam_ssh.c
@@ -199,7 +199,7 @@ pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char **argv)
}
pam_auth_dsa = auth_via_key(pamh, KEY_DSA, SSH_CLIENT_ID_DSA, dotdir,
pwd, pass);
- pam_auth_rsa = auth_via_key(pamh, KEY_RSA, SSH_CLIENT_IDENTITY, dotdir,
+ pam_auth_rsa = auth_via_key(pamh, KEY_RSA1, SSH_CLIENT_IDENTITY, dotdir,
pwd, pass);
authenticated = 0;
if (pam_auth_dsa == PAM_SUCCESS)
@@ -234,7 +234,7 @@ pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char **argv)
/* RSA keys */
else if (strncmp(dotdir_ent->d_name, SSH2_RSA_PREFIX,
strlen(SSH2_RSA_PREFIX)) == 0)
- retval = auth_via_key(pamh, KEY_DSA,
+ retval = auth_via_key(pamh, KEY_RSA,
dotdir_ent->d_name, dotdir, pwd, pass);
/* skip other files */
else
@@ -376,12 +376,12 @@ pam_sm_open_session(pam_handle_t *pamh, int flags, int argc, const char **argv)
if (env_fp)
fputs(env_string, env_fp);
env_value = strchr(env_string, '=');
- if (env_value == NULL) {
- env_end = strchr(env_value, ';');
- if (env_end == NULL)
+ if (env_value == NULL)
+ continue;
+ env_end = strchr(env_value, ';');
+ if (env_end == NULL)
continue;
- *env_end = '\0';
- }
+ *env_end = '\0';
/* pass to the application ... */
retval = pam_putenv(pamh, env_string);
if (retval != PAM_SUCCESS) {
@@ -390,6 +390,7 @@ pam_sm_open_session(pam_handle_t *pamh, int flags, int argc, const char **argv)
fclose(env_fp);
PAM_RETURN(PAM_SERVICE_ERR);
}
+ putenv(env_string);
PAM_LOG("Put to environment: %s", env_string);
OpenPOWER on IntegriCloud