diff options
-rw-r--r-- | source4/auth/gensec/socket.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source4/auth/gensec/socket.c b/source4/auth/gensec/socket.c index 4ee1512e89..1d9620dcf8 100644 --- a/source4/auth/gensec/socket.c +++ b/source4/auth/gensec/socket.c @@ -155,7 +155,15 @@ NTSTATUS gensec_packet_full_request(struct gensec_security *gensec_security, } return STATUS_MORE_ENTRIES; } - return packet_full_request_u32(NULL, blob, size); + + if (blob.length < 4) { + return STATUS_MORE_ENTRIES; + } + *size = 4 + RIVAL(blob.data, 0); + if (*size > blob.length) { + return STATUS_MORE_ENTRIES; + } + return NT_STATUS_OK; } static NTSTATUS gensec_socket_full_request(void *private_data, DATA_BLOB blob, size_t *size) |