diff options
-rw-r--r-- | modules/pam_env/pam_env.c | 2 | ||||
-rw-r--r-- | modules/pam_env/tst-pam_env-retval.c | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/modules/pam_env/pam_env.c b/modules/pam_env/pam_env.c index 2b33aa5f..74e02638 100644 --- a/modules/pam_env/pam_env.c +++ b/modules/pam_env/pam_env.c @@ -498,6 +498,8 @@ _parse_line(const pam_handle_t *pamh, const char *buffer, VAR *var) quoteflg++; } if (length) { + if (*valptr != "e) + free(*valptr); if ((*valptr = malloc(length + 1)) == NULL) { D(("Couldn't malloc %d bytes", length+1)); pam_syslog(pamh, LOG_CRIT, "Couldn't malloc %d bytes", length+1); diff --git a/modules/pam_env/tst-pam_env-retval.c b/modules/pam_env/tst-pam_env-retval.c index 23ad10b9..6e5558f2 100644 --- a/modules/pam_env/tst-pam_env-retval.c +++ b/modules/pam_env/tst-pam_env-retval.c @@ -69,7 +69,7 @@ setup(void) ASSERT_NE(NULL, fp = fopen(my_conf, "w")); ASSERT_LT(0, fprintf(fp, - "EDITOR\tDEFAULT=vim\n" + "EDITOR\tDEFAULT=vi DEFAULT= DEFAULT=vim\n" "PAGER\tDEFAULT=more\n")); ASSERT_EQ(0, fclose(fp)); |