Remove "homedir" from "struct user_struct"
authorVolker Lendecke <vl@samba.org>
Tue, 29 Apr 2008 10:47:55 +0000 (12:47 +0200)
committerVolker Lendecke <vl@samba.org>
Mon, 5 May 2008 16:28:58 +0000 (18:28 +0200)
(This used to be commit 41f9afd62d8cc6067582d452f3d53a5c67253b69)

source3/include/smb.h
source3/smbd/lanman.c
source3/smbd/password.c

index f3295e12bd4df08e1b5d415c4a79b1deb23dc96f..cb36b9bebbdd8dcbcb3a17cdd1cdbc62444a8590 100644 (file)
@@ -1781,7 +1781,6 @@ typedef struct user_struct {
        gid_t gid; /* gid of a validated user */
 
        userdom_struct user;
-       const char *homedir;
        const char *unix_homedir;
        const char *logon_script;
        
index 6fa4f9698d9611d13a070ce01bc9e5f4786f1c80..be8aa58e7f875d6a34ad81201e8225d91de0aafc 100644 (file)
@@ -3420,12 +3420,17 @@ static bool api_RNetUserGetInfo(connection_struct *conn, uint16 vuid,
        }
 
        if (uLevel == 11) {
+               const char *homedir = "";
+               if (vuser != NULL) {
+                       homedir = pdb_get_homedir(
+                               vuser->server_info->sam_account);
+               }
                /* modelled after NTAS 3.51 reply */
                SSVAL(p,usri11_priv,conn->admin_user?USER_PRIV_ADMIN:USER_PRIV_USER); 
                SIVAL(p,usri11_auth_flags,AF_OP_PRINT);         /* auth flags */
                SIVALS(p,usri11_password_age,-1);               /* password age */
                SIVAL(p,usri11_homedir,PTR_DIFF(p2,p)); /* home dir */
-               strlcpy(p2, vuser && vuser->homedir ? vuser->homedir : "",PTR_DIFF(endp,p2));
+               strlcpy(p2, homedir, PTR_DIFF(endp,p2));
                p2 = skip_string(*rdata,*rdata_len,p2);
                if (!p2) {
                        return False;
@@ -3471,12 +3476,17 @@ static bool api_RNetUserGetInfo(connection_struct *conn, uint16 vuid,
        }
 
        if (uLevel == 1 || uLevel == 2) {
+               const char *homedir = "";
+               if (vuser != NULL) {
+                       homedir = pdb_get_homedir(
+                               vuser->server_info->sam_account);
+               }
                memset(p+22,' ',16);    /* password */
                SIVALS(p,38,-1);                /* password age */
                SSVAL(p,42,
                conn->admin_user?USER_PRIV_ADMIN:USER_PRIV_USER);
                SIVAL(p,44,PTR_DIFF(p2,*rdata)); /* home dir */
-               strlcpy(p2, vuser && vuser->homedir ? vuser->homedir : "",PTR_DIFF(endp,p2));
+               strlcpy(p2, homedir, PTR_DIFF(endp,p2));
                p2 = skip_string(*rdata,*rdata_len,p2);
                if (!p2) {
                        return False;
index 80eba562c54c77990bcdfbceb655d2ad6bc6520a..a7e462a0cafa87f805cf2fc68325503e34183abe 100644 (file)
@@ -268,9 +268,6 @@ int register_existing_vuid(uint16 vuid,
        pdb_get_fullname(server_info->sam_account));
 
        {
-               /* Keep the homedir handy */
-               const char *homedir =
-                       pdb_get_homedir(server_info->sam_account);
                const char *logon_script =
                        pdb_get_logon_script(server_info->sam_account);
 
@@ -294,9 +291,6 @@ int register_existing_vuid(uint16 vuid,
                        }
                }
 
-               if (homedir) {
-                       vuser->homedir = homedir;
-               }
                if (logon_script) {
                        vuser->logon_script = logon_script;
                }