From 84d4270c8e4ec18e9f83722d6df1a07f70acaade Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Fri, 30 Jan 2015 14:37:06 +0100 Subject: nmblookup: Warn user if netbios name is too long. Signed-off-by: Andreas Schneider Reviewed-by: Jeremy Allison Autobuild-User(master): Jeremy Allison Autobuild-Date(master): Tue Feb 24 01:01:10 CET 2015 on sn-devel-104 --- libcli/nbt/tools/nmblookup.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'libcli') diff --git a/libcli/nbt/tools/nmblookup.c b/libcli/nbt/tools/nmblookup.c index 9b875b08c49..afb81c745cd 100644 --- a/libcli/nbt/tools/nmblookup.c +++ b/libcli/nbt/tools/nmblookup.c @@ -32,6 +32,10 @@ #include "../libcli/nbt/libnbt.h" #include "param/param.h" +#include + +#define MAX_NETBIOSNAME_LEN 16 + /* command line options */ static struct { const char *broadcast_address; @@ -190,6 +194,7 @@ static bool process_one(struct loadparm_context *lp_ctx, struct tevent_context * struct socket_address *all_zero_addr; struct nbt_name_socket *nbtsock; NTSTATUS status = NT_STATUS_OK; + size_t nbt_len; bool ret = true; if (!options.case_sensitive) { @@ -212,6 +217,14 @@ static bool process_one(struct loadparm_context *lp_ctx, struct tevent_context * node_name = talloc_strdup(tmp_ctx, name); } + nbt_len = strlen(node_name); + if (nbt_len > MAX_NETBIOSNAME_LEN - 1) { + printf("The specified netbios name [%s] is too long.\n", + node_name); + talloc_free(tmp_ctx); + return false; + } + nbtsock = nbt_name_socket_init(tmp_ctx, ev); if (options.root_port) { -- cgit v1.2.1