]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
r2779: Some fixes to pam_winbind.c.:
authorAndrew Bartlett <abartlet@samba.org>
Sat, 2 Oct 2004 11:11:49 +0000 (11:11 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 15:52:52 +0000 (10:52 -0500)
Allow 'require_membership_of' and 'require-membership-of'.

Really use a different struct for the SID->Name lookup.

Andrew Bartlett

source/nsswitch/pam_winbind.c

index 9a00ac2886c4d13b44249ab5d45ec87e9706e27d..9d4f0954ceb81b45749dd2ce22a1f1a95441b91b 100644 (file)
@@ -218,21 +218,21 @@ static int winbind_auth_request(const char *user, const char *pass, const char *
                struct winbindd_request sid_request;
                struct winbindd_response sid_response;
 
-               ZERO_STRUCT(request);
-               ZERO_STRUCT(response);
+               ZERO_STRUCT(sid_request);
+               ZERO_STRUCT(sid_response);
 
                if (ctrl & WINBIND_DEBUG_ARG)
                        _pam_log(LOG_DEBUG, "no sid given, looking up: %s\n", member);
 
                /* fortunatly winbindd can handle non-separated names */
-               strcpy(request.data.name.name, member);
+               strcpy(sid_request.data.name.name, member);
 
-               if (pam_winbind_request_log(WINBINDD_LOOKUPNAME, &request, &response, ctrl, user)) {
+               if (pam_winbind_request_log(WINBINDD_LOOKUPNAME, &sid_request, &sid_response, ctrl, user)) {
                        _pam_log(LOG_INFO, "could not lookup name: %s\n", member); 
                        return PAM_AUTH_ERR;
                }
 
-               member = response.data.sid.sid;
+               member = sid_response.data.sid.sid;
        }
 
        strncpy(request.data.auth.require_membership_of_sid, member, 
@@ -490,13 +490,14 @@ int pam_sm_authenticate(pam_handle_t *pamh, int flags,
      /* Retrieve membership-string here */
      for ( i=0; i<argc; i++ ) {
 
-        if (!strncmp(argv[i], "require_membership_of", strlen("require_membership_of"))) {
+        if ((strncmp(argv[i], "require_membership_of", strlen("require_membership_of")) == 0) 
+            || (strncmp(argv[i], "require-membership-of", strlen("require-membership-of")) == 0)) {
 
             char *p;
             char *parm = strdup(argv[i]);
 
             if ( (p = strchr( parm, '=' )) == NULL) {
-               _pam_log(LOG_INFO, "no \"=\" delimiter for \"required_membership\" found\n");
+               _pam_log(LOG_INFO, "no \"=\" delimiter for \"require_membership_of\" found\n");
                break;
             }