From b8fdeb8ca7ce362058bb86a4e58b34fb6340867e Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 10 Jan 2014 13:13:40 +0100 Subject: [PATCH] libcli/auth: reject computer_name longer than 15 chars This matches Windows, it seems they use a fixed size field to store netlogon_creds_CredentialState. Signed-off-by: Stefan Metzmacher Reviewed-by: Andrew Bartlett --- libcli/auth/schannel_state_tdb.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libcli/auth/schannel_state_tdb.c b/libcli/auth/schannel_state_tdb.c index 8c893ee08ee..6669b465b73 100644 --- a/libcli/auth/schannel_state_tdb.c +++ b/libcli/auth/schannel_state_tdb.c @@ -78,6 +78,14 @@ NTSTATUS schannel_store_session_key_tdb(struct db_context *db_sc, char *name_upper; NTSTATUS status; + if (strlen(creds->computer_name) > 15) { + /* + * We may want to check for a completely + * valid netbios name. + */ + return STATUS_BUFFER_OVERFLOW; + } + name_upper = strupper_talloc(mem_ctx, creds->computer_name); if (!name_upper) { return NT_STATUS_NO_MEMORY;