summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2004-09-25 08:08:12 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:59:12 -0500
commit69d170e7238769284d5bb69bf552791ff8bc0148 (patch)
tree6c003cd89b4763dfbd88cd5f7f3a4bcc0500b470
parente3e3e4577bf7d4c8570c23ed994c3f4e49c2b0c3 (diff)
downloadsamba-69d170e7238769284d5bb69bf552791ff8bc0148.tar.gz
samba-69d170e7238769284d5bb69bf552791ff8bc0148.tar.bz2
samba-69d170e7238769284d5bb69bf552791ff8bc0148.zip
r2616: the cascading nature of talloc_free() can lead to some surprises. In
this case the bug was that server_terminate_connection() destroys the server context, which in turn cascades down to destroy all current request contexts, so we musn't then try to destroy the request structure a second time. (This used to be commit 28a647f681e2166c01f7ac59b16305676d5caa71)
-rw-r--r--source4/smb_server/request.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/source4/smb_server/request.c b/source4/smb_server/request.c
index e3121f8398..15e821b32b 100644
--- a/source4/smb_server/request.c
+++ b/source4/smb_server/request.c
@@ -261,6 +261,7 @@ void req_send_reply_nosign(struct smbsrv_request *req)
status = socket_send(req->smb_conn->connection->socket, req, &tmp_blob, &sendlen, SOCKET_FLAG_BLOCK);
if (!NT_STATUS_IS_OK(status) || (req->out.size != sendlen)) {
smbsrv_terminate_connection(req->smb_conn, "failed to send reply\n");
+ return;
}
req_destroy(req);