summaryrefslogtreecommitdiff
path: root/source3/smbd/uid.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>1998-02-11 11:07:14 +0000
committerJeremy Allison <jra@samba.org>1998-02-11 11:07:14 +0000
commit99e11e171e40703271ad2a7934708cee66b0bb82 (patch)
treeed892bbc53c3155d43e583ced1a59d47623fa1af /source3/smbd/uid.c
parent5546e28e69b1a43dbb48e024e233d8ebf7fa667a (diff)
downloadsamba-99e11e171e40703271ad2a7934708cee66b0bb82.tar.gz
samba-99e11e171e40703271ad2a7934708cee66b0bb82.tar.bz2
samba-99e11e171e40703271ad2a7934708cee66b0bb82.zip
Makefile: Added AIX 3.2.5.
loadparm.c: Added "win95 bug compatibility" parameter. local.h: Replaced MAX_OPEN_FILES back to 100 from 10 (oops). reply.c: Fixed ulogoff check against uid - changed to vuid. server.c: Changed file struct save of uid - changed to vuid. smb.h: Changed id in struct current_user to vuid. Changed file struct uid to vuid. time.c: Added "win95 bug compatibility" atime -> mtime return. trans2.c: Added "win95 bug compatibility" fixes. uid.c: Changed id in struct current_user to vuid - added checks to set/reset it. util.c: Added code to expand environment variables. version.h : still at 1.9.18 (head branch doesn't matter too much at present). Jeremy. (This used to be commit adc903bcf59ad1664babd7f1d43675d3a75bfbc9)
Diffstat (limited to 'source3/smbd/uid.c')
-rw-r--r--source3/smbd/uid.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/source3/smbd/uid.c b/source3/smbd/uid.c
index 176f6ca240..14b0000f59 100644
--- a/source3/smbd/uid.c
+++ b/source3/smbd/uid.c
@@ -53,6 +53,7 @@ void init_uid(void)
initial_gid = getegid();
current_user.cnum = -1;
+ current_user.vuid = UID_FIELD_INVALID;
ChDir(OriginalDir);
}
@@ -174,6 +175,7 @@ BOOL become_guest(void)
DEBUG(1,("Failed to become guest. Invalid guest account?\n"));
current_user.cnum = -2;
+ current_user.vuid = UID_FIELD_INVALID;
return(ret);
}
@@ -208,7 +210,8 @@ BOOL become_user(connection_struct *conn, int cnum, uint16 vuid)
int snum,gid;
int uid;
- if (current_user.cnum == cnum && vuser != 0 && current_user.id == vuser->uid) {
+ if ((current_user.cnum == cnum) && (vuser != 0) && (current_user.vuid == vuid) &&
+ (current_user.uid == vuser->uid)) {
DEBUG(4,("Skipping become_user - already user\n"));
return(True);
}
@@ -272,7 +275,7 @@ BOOL become_user(connection_struct *conn, int cnum, uint16 vuid)
}
current_user.cnum = cnum;
- current_user.id = uid;
+ current_user.vuid = vuid;
DEBUG(5,("become_user uid=(%d,%d) gid=(%d,%d)\n",
getuid(),geteuid(),getgid(),getegid()));
@@ -333,6 +336,7 @@ BOOL unbecome_user(void )
getuid(),geteuid(),getgid(),getegid()));
current_user.cnum = -1;
+ current_user.vuid = UID_FIELD_INVALID;
return(True);
}