summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2014-06-20 14:15:54 +0000
committerVolker Lendecke <vl@samba.org>2014-06-21 20:38:11 +0200
commit713518a4c85172973611cf99b77ba4fe631fb850 (patch)
tree131d719a29bb631cfc2c1e45cde24ac954b76390
parent0c2e763aaa05f63bb8563e62f9731e35afa9ed86 (diff)
downloadsamba-713518a4c85172973611cf99b77ba4fe631fb850.tar.gz
samba-713518a4c85172973611cf99b77ba4fe631fb850.tar.xz
samba-713518a4c85172973611cf99b77ba4fe631fb850.zip
smbd: Fix bug 10593
Bug 10593 is a panic that happens if we get an oplock break reply via dbwrap_watch for which we can't find the SMB request anymore. This error condition can legally happen when a client cancels the create request before the oplock break response comes in. This patch drops the dbwrap_watch_send request waiting for the oplock break when the request is cancelled. Yet another talloc hierarchy problem, but if done right, talloc hierarchies can make rundown of state easy :-) Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
-rw-r--r--source3/smbd/open.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/source3/smbd/open.c b/source3/smbd/open.c
index 9cbc046760..b913c9c576 100644
--- a/source3/smbd/open.c
+++ b/source3/smbd/open.c
@@ -1585,7 +1585,7 @@ static void defer_open(struct share_mode_lock *lck,
struct tevent_req *watch_req;
bool ret;
- watch_state = talloc(req->sconn, struct defer_open_state);
+ watch_state = talloc(open_rec, struct defer_open_state);
if (watch_state == NULL) {
exit_server("talloc failed");
}