mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
r20097: Ensure found_username is freed correctly when
talloced on the null context.
Jeremy.
(This used to be commit 2c59c4dddc
)
This commit is contained in:
parent
63609fbb04
commit
af0f14e3a7
@ -643,7 +643,8 @@ static connection_struct *make_connection_snum(int snum, user_struct *vuser,
|
||||
if (lp_guest_only(snum)) {
|
||||
const char *guestname = lp_guestaccount();
|
||||
NTSTATUS status2;
|
||||
char *found_username;
|
||||
char *found_username = NULL;
|
||||
|
||||
guest = True;
|
||||
pass = getpwnam_alloc(NULL, guestname);
|
||||
if (!pass) {
|
||||
@ -658,6 +659,7 @@ static connection_struct *make_connection_snum(int snum, user_struct *vuser,
|
||||
&found_username,
|
||||
&conn->nt_user_token);
|
||||
if (!NT_STATUS_IS_OK(status2)) {
|
||||
TALLOC_FREE(found_username);
|
||||
conn_free(conn);
|
||||
*status = status2;
|
||||
return NULL;
|
||||
@ -665,6 +667,7 @@ static connection_struct *make_connection_snum(int snum, user_struct *vuser,
|
||||
fstrcpy(user, found_username);
|
||||
string_set(&conn->user,user);
|
||||
conn->force_user = True;
|
||||
TALLOC_FREE(found_username);
|
||||
TALLOC_FREE(pass);
|
||||
DEBUG(3,("Guest only user %s\n",user));
|
||||
} else if (vuser) {
|
||||
@ -697,7 +700,7 @@ static connection_struct *make_connection_snum(int snum, user_struct *vuser,
|
||||
guest = vuser->guest;
|
||||
} else if (lp_security() == SEC_SHARE) {
|
||||
NTSTATUS status2;
|
||||
char *found_username;
|
||||
char *found_username = NULL;
|
||||
/* add it as a possible user name if we
|
||||
are in share mode security */
|
||||
add_session_user(lp_servicename(snum));
|
||||
@ -715,12 +718,14 @@ static connection_struct *make_connection_snum(int snum, user_struct *vuser,
|
||||
&found_username,
|
||||
&conn->nt_user_token);
|
||||
if (!NT_STATUS_IS_OK(status2)) {
|
||||
TALLOC_FREE(found_username);
|
||||
conn_free(conn);
|
||||
*status = status2;
|
||||
return NULL;
|
||||
}
|
||||
fstrcpy(user, found_username);
|
||||
string_set(&conn->user,user);
|
||||
TALLOC_FREE(found_username);
|
||||
conn->force_user = True;
|
||||
} else {
|
||||
DEBUG(0, ("invalid VUID (vuser) but not in security=share\n"));
|
||||
|
Loading…
Reference in New Issue
Block a user