summaryrefslogtreecommitdiffstats
path: root/source/nmbd
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2003-08-28 18:23:05 +0000
committerJeremy Allison <jra@samba.org>2003-08-28 18:23:05 +0000
commit68d02ebbcd9bc4cf7c84763d03c903b1f2e55fb8 (patch)
tree14669436df140a5e2db72f956b35ea0422e35aec /source/nmbd
parent35a0b3c035d50474eda97b015676885722737a95 (diff)
downloadsamba-68d02ebbcd9bc4cf7c84763d03c903b1f2e55fb8.tar.gz
samba-68d02ebbcd9bc4cf7c84763d03c903b1f2e55fb8.tar.xz
samba-68d02ebbcd9bc4cf7c84763d03c903b1f2e55fb8.zip
Add length warning on register name.
Jeremy.
Diffstat (limited to 'source/nmbd')
-rw-r--r--source/nmbd/nmbd_nameregister.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/source/nmbd/nmbd_nameregister.c b/source/nmbd/nmbd_nameregister.c
index 5c9deeb4dbe..0397f565125 100644
--- a/source/nmbd/nmbd_nameregister.c
+++ b/source/nmbd/nmbd_nameregister.c
@@ -471,8 +471,18 @@ void register_name(struct subnet_record *subrec,
struct userdata_struct *userdata)
{
struct nmb_name nmbname;
-
- make_nmb_name(&nmbname, name, type);
+ nstring nname;
+
+ if (strlen(name)+1 > sizeof(nstring)) {
+ memcpy(nname, name,sizeof(nstring)-1);
+ nname[sizeof(nstring)-1] = '\0';
+ DEBUG(0,("register_name: NetBIOS name %s is too long. Truncating to %s\n",
+ name, nname));
+ } else {
+ nstrcpy(nname,name);
+ }
+
+ make_nmb_name(&nmbname, nname, type);
/* Always set the NB_ACTIVE flag on the name we are
registering. Doesn't make sense without it.