s3: don't make same innetgr check twice
authorBjörn Jacke <bj@sernet.de>
Tue, 14 Jul 2009 15:40:21 +0000 (17:40 +0200)
committerBjörn Jacke <bj@sernet.de>
Tue, 14 Jul 2009 15:42:05 +0000 (17:42 +0200)
source3/smbd/password.c

index 928ef0169ec93c8802ac9137e5844229e51bc45e..58824b6e23eacdefa31037ddba33e6ea5eb4aaa8 100644 (file)
@@ -428,16 +428,16 @@ bool user_in_netgroup(struct smbd_server_connection *sconn,
        if (innetgr(ngname, NULL, user, sconn->smb1.sessions.my_yp_domain)) {
                DEBUG(5,("user_in_netgroup: Found\n"));
                return true;
-       } else {
-
-               /*
-                * Ok, innetgr is case sensitive. Try once more with lowercase
-                * just in case. Attempt to fix #703. JRA.
-                */
+       }
 
-               fstrcpy(lowercase_user, user);
-               strlower_m(lowercase_user);
+       /*
+        * Ok, innetgr is case sensitive. Try once more with lowercase
+        * just in case. Attempt to fix #703. JRA.
+        */
+       fstrcpy(lowercase_user, user);
+       strlower_m(lowercase_user);
 
+       if (strcmp(user,lowercase_user) != 0) {
                DEBUG(5,("looking for user %s of domain %s in netgroup %s\n",
                        lowercase_user,
                        sconn->smb1.sessions.my_yp_domain?
@@ -449,6 +449,9 @@ bool user_in_netgroup(struct smbd_server_connection *sconn,
                        DEBUG(5,("user_in_netgroup: Found\n"));
                        return true;
                }
+       } else {
+               /* user name was already lower case! */
+               return false;
        }
 #endif /* HAVE_NETGROUP */
        return false;