1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-26 10:04:02 +03:00

s3: Move a talloc_strdup out of the main code path

This is only used for AS_GUEST requests

Autobuild-User: Volker Lendecke <vl@samba.org>
Autobuild-Date: Tue Mar  6 14:29:50 CET 2012 on sn-devel-104
This commit is contained in:
Volker Lendecke 2012-03-05 16:56:53 +01:00
parent b709589445
commit 1f62df52aa

View File

@ -1351,7 +1351,6 @@ static connection_struct *switch_message(uint8 type, struct smb_request *req)
uint16 session_tag;
connection_struct *conn = NULL;
struct smbd_server_connection *sconn = req->sconn;
char *raddr;
errno = 0;
@ -1466,21 +1465,38 @@ static connection_struct *switch_message(uint8 type, struct smb_request *req)
conn->num_smb_operations++;
}
raddr = tsocket_address_inet_addr_string(sconn->remote_address,
talloc_tos());
if (raddr == NULL) {
reply_nterror(req, NT_STATUS_NO_MEMORY);
return conn;
}
/*
* Does this protocol need to be run as guest? (Only archane
* messenger service requests have this...)
*/
if (flags & AS_GUEST) {
char *raddr;
bool ok;
/* does this protocol need to be run as guest? */
if ((flags & AS_GUEST)
&& (!change_to_guest() ||
!allow_access(lp_hostsdeny(-1), lp_hostsallow(-1),
sconn->remote_hostname,
raddr))) {
reply_nterror(req, NT_STATUS_ACCESS_DENIED);
return conn;
if (!change_to_guest()) {
reply_nterror(req, NT_STATUS_ACCESS_DENIED);
return conn;
}
raddr = tsocket_address_inet_addr_string(sconn->remote_address,
talloc_tos());
if (raddr == NULL) {
reply_nterror(req, NT_STATUS_NO_MEMORY);
return conn;
}
/*
* Haven't we checked this in smbd_process already???
*/
ok = allow_access(lp_hostsdeny(-1), lp_hostsallow(-1),
sconn->remote_hostname, raddr);
TALLOC_FREE(raddr);
if (!ok) {
reply_nterror(req, NT_STATUS_ACCESS_DENIED);
return conn;
}
}
smb_messages[type].fn(req);