mirror of
https://github.com/samba-team/samba.git
synced 2025-02-28 01:58:17 +03:00
Fix bug #9196 - defer_open is triggered multiple times on the same request.
get_deferred_open_message_state_smb2() is buggy in that it is checking the wrong things to determine if an open is in the deferred state. It checks if (smb2req->async_te == NULL) which is incorrect, as we're not always async in a deferred open - remove this. It should check instead state->open_was_deferred as this is explicity set to 'true' when an open is going deferred, so add this check. Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org> Autobuild-User(master): Stefan Metzmacher <metze@samba.org> Autobuild-Date(master): Tue Dec 18 14:19:13 CET 2012 on sn-devel-104
This commit is contained in:
parent
d8461992db
commit
2148d86c7a
@ -1133,9 +1133,6 @@ bool get_deferred_open_message_state_smb2(struct smbd_smb2_request *smb2req,
|
||||
if (!smb2req) {
|
||||
return false;
|
||||
}
|
||||
if (smb2req->async_te == NULL) {
|
||||
return false;
|
||||
}
|
||||
req = smb2req->subreq;
|
||||
if (!req) {
|
||||
return false;
|
||||
@ -1144,6 +1141,9 @@ bool get_deferred_open_message_state_smb2(struct smbd_smb2_request *smb2req,
|
||||
if (!state) {
|
||||
return false;
|
||||
}
|
||||
if (!state->open_was_deferred) {
|
||||
return false;
|
||||
}
|
||||
if (p_request_time) {
|
||||
*p_request_time = state->request_time;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user