summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/kdc/kdc.c6
-rw-r--r--source4/smb_server/smb_server.c4
2 files changed, 7 insertions, 3 deletions
diff --git a/source4/kdc/kdc.c b/source4/kdc/kdc.c
index a79dc8457e..e633b5baa7 100644
--- a/source4/kdc/kdc.c
+++ b/source4/kdc/kdc.c
@@ -204,7 +204,8 @@ static void kdc_tcp_terminate_connection(struct kdc_tcp_connection *kdcconn, con
*/
static NTSTATUS kdc_tcp_recv(void *private, DATA_BLOB blob)
{
- struct kdc_tcp_connection *kdcconn = talloc_get_type(private, struct kdc_tcp_connection);
+ struct kdc_tcp_connection *kdcconn = talloc_get_type(private,
+ struct kdc_tcp_connection);
NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
TALLOC_CTX *tmp_ctx = talloc_new(kdcconn);
const char *src_addr;
@@ -255,8 +256,7 @@ nomem:
status = NT_STATUS_NO_MEMORY;
failed:
- kdc_tcp_terminate_connection(kdcconn, nt_errstr(status));
- return NT_STATUS_OK;
+ return status;
}
/*
diff --git a/source4/smb_server/smb_server.c b/source4/smb_server/smb_server.c
index 6d2ffc0274..0ec15aea56 100644
--- a/source4/smb_server/smb_server.c
+++ b/source4/smb_server/smb_server.c
@@ -662,6 +662,10 @@ static void smbsrv_accept(struct stream_connection *conn)
smb_conn->negotiate.calling_name = NULL;
smb_conn->packet = packet_init(smb_conn);
+ if (smb_conn->packet == NULL) {
+ stream_terminate_connection(conn, "out of memory");
+ return;
+ }
packet_set_private(smb_conn->packet, smb_conn);
packet_set_socket(smb_conn->packet, conn->socket);
packet_set_callback(smb_conn->packet, receive_smb_request);