diff options
author | Luke Leighton <lkcl@samba.org> | 2000-02-06 05:17:28 +0000 |
---|---|---|
committer | Luke Leighton <lkcl@samba.org> | 2000-02-06 05:17:28 +0000 |
commit | cf34c0bec59dfd8b83edf3e111e925ccd3db1226 (patch) | |
tree | c68c44f0f3c93c46845e6fd4183b99328d4154d5 /source/rpc_parse/parse_creds.c | |
parent | 28aa3f66138b8be02d8198537b0e524b4b6b417b (diff) | |
download | samba-cf34c0bec59dfd8b83edf3e111e925ccd3db1226.tar.gz samba-cf34c0bec59dfd8b83edf3e111e925ccd3db1226.tar.xz samba-cf34c0bec59dfd8b83edf3e111e925ccd3db1226.zip |
this is probably one of THE most reluctant commits i've ever made.
it's far-reaching, and necessary.
this adds a vuser_struct tdb database, with a key [smbd's pid, vuid].
smbd uses it in every instance of standard_sub() and standard_sub_vuser().
that's almost every single SMB call for any IPC$ access.
the next stage is to remove sesssetup_user, probably sessetup_user_list too,
and review all occurences of standard_sub_basic used by smbd because if
they use standard_sub_basic() they might be expecting to read sesssetup_user,
and if they do _that_, they should be using standard_sub_vuser() instead.
all i wanted was a means to get vuids across to msrpc daemons.
Diffstat (limited to 'source/rpc_parse/parse_creds.c')
-rw-r--r-- | source/rpc_parse/parse_creds.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/source/rpc_parse/parse_creds.c b/source/rpc_parse/parse_creds.c index 3e723787689..29a5bb12f0a 100644 --- a/source/rpc_parse/parse_creds.c +++ b/source/rpc_parse/parse_creds.c @@ -412,7 +412,8 @@ BOOL creds_io_cmd(char *desc, CREDS_CMD *r_u, prs_struct *ps, int depth) prs_uint16("version", ps, depth, &(r_u->version)); prs_uint16("command", ps, depth, &(r_u->command)); - prs_uint32("pid ", ps, depth, &(r_u->pid )); + + vuid_io_key("key", &r_u->key, ps, 0); prs_string("name ", ps, depth, r_u->name, strlen(r_u->name), sizeof(r_u->name)); prs_align(ps); @@ -434,7 +435,7 @@ BOOL creds_io_cmd(char *desc, CREDS_CMD *r_u, prs_struct *ps, int depth) BOOL create_ntuser_creds( prs_struct *ps, const char* name, uint16 version, uint16 command, - uint32 pid, + const vuser_key *key, const struct ntuser_creds *ntu, BOOL reuse) { @@ -452,7 +453,7 @@ BOOL create_ntuser_creds( prs_struct *ps, fstrcpy(cmd.name, name); cmd.version = version; cmd.command = command; - cmd.pid = pid ; + cmd.key = *key ; cmd.ptr_creds = ntu != NULL ? 1 : 0; cmd.cred = &usr; @@ -475,7 +476,7 @@ BOOL create_ntuser_creds( prs_struct *ps, BOOL create_user_creds( prs_struct *ps, const char* name, uint16 version, uint16 command, - uint32 pid, + const vuser_key *key, const struct user_creds *usr) { CREDS_CMD cmd; @@ -488,7 +489,7 @@ BOOL create_user_creds( prs_struct *ps, fstrcpy(cmd.name, name); cmd.version = version; cmd.command = command; - cmd.pid = pid ; + cmd.key = *key; cmd.ptr_creds = usr != NULL ? 1 : 0; cmd.cred = usr; |