aboutsummaryrefslogtreecommitdiff
path: root/pam_regex/pam_regex.c
diff options
context:
space:
mode:
Diffstat (limited to 'pam_regex/pam_regex.c')
-rw-r--r--pam_regex/pam_regex.c26
1 files changed, 17 insertions, 9 deletions
diff --git a/pam_regex/pam_regex.c b/pam_regex/pam_regex.c
index 95324c0..0c3737b 100644
--- a/pam_regex/pam_regex.c
+++ b/pam_regex/pam_regex.c
@@ -114,3 +114,2 @@ pam_sm_authenticate(pam_handle_t *pamh,
- gray_pam_init(PAM_AUTHINFO_UNAVAIL);
@@ -131,10 +130,19 @@ pam_sm_authenticate(pam_handle_t *pamh,
- gray_set_transform_expr(transform);
+ retval = gray_set_transform_expr(transform);
+ if (retval != PAM_SUCCESS)
+ return retval;
slist = gray_slist_create();
- gray_transform_name_to_slist(slist, name, &newname);
- DEBUG(90,("new name: %s", newname));
- MAKE_STR(pamh, newname, name);
- retval = pam_set_item(pamh, PAM_USER, name);
- gray_slist_free(&slist);
- gray_free_transform_expr();
+ if (!slist)
+ retval = errno_to_pam(errno);
+ else {
+ retval = gray_transform_name_to_slist(slist, name,
+ &newname);
+ if (retval == PAM_SUCCESS) {
+ DEBUG(90,("new name: %s", newname));
+ MAKE_STR(pamh, newname, name);
+ retval = pam_set_item(pamh, PAM_USER, name);
+ gray_slist_free(&slist);
+ }
+ gray_free_transform_expr();
+ }
if (retval != PAM_SUCCESS) {
@@ -147,3 +155,3 @@ pam_sm_authenticate(pam_handle_t *pamh,
for (;;) {
- if (rc = regcomp(&rx, regex, regex_flags)) {
+ if ((rc = regcomp(&rx, regex, regex_flags)) != 0) {
char errbuf[512];

Return to:

Send suggestions and report system problems to the System administrator.