diff options
-rw-r--r-- | source3/smbd/uid.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source3/smbd/uid.c b/source3/smbd/uid.c index 004e48a44f..310ad4d23a 100644 --- a/source3/smbd/uid.c +++ b/source3/smbd/uid.c @@ -109,7 +109,15 @@ static bool check_user_ok(connection_struct *conn, user_struct *vuser,int snum) TALLOC_FREE(ent->server_info); - ent->server_info = copy_serverinfo(conn, vuser->server_info); + /* + * If force_user was set, all server_info's are based on the same + * username-based faked one. + */ + + ent->server_info = copy_serverinfo( + conn, + conn->force_user ? conn->server_info : vuser->server_info); + if (ent->server_info == NULL) { ent->vuid = UID_FIELD_INVALID; return false; |