diff -ur on17/usr/src/lib/libpam/pam_framework.c bc-on17/usr/src/lib/libpam/pam_framework.c --- on17/usr/src/lib/libpam/pam_framework.c Tue Jun 14 02:45:11 2005 +++ bc-on17/usr/src/lib/libpam/pam_framework.c Sun Jul 10 15:38:54 2005 @@ -1477,12 +1477,10 @@ goto out; } if ((traverse->name = strdup(name)) == 0) { - free_env(traverse); error = PAM_BUF_ERR; goto out; } if ((traverse->value = strdup(value)) == 0) { - free_env(traverse); error = PAM_BUF_ERR; goto out; } @@ -1497,15 +1495,8 @@ error = PAM_SUCCESS; out: - if (error != PAM_SUCCESS) { - if (traverse) { - if (traverse->name) - free(traverse->name); - if (traverse->value) - free(traverse->value); - free(traverse); - } - } + if (error != PAM_SUCCESS) + free_env(traverse); if (name) free(name); if (value)