Add length warning on register name.
authorJeremy Allison <jra@samba.org>
Thu, 28 Aug 2003 18:23:05 +0000 (18:23 +0000)
committerJeremy Allison <jra@samba.org>
Thu, 28 Aug 2003 18:23:05 +0000 (18:23 +0000)
Jeremy.
(This used to be commit 68d02ebbcd9bc4cf7c84763d03c903b1f2e55fb8)

source3/nmbd/nmbd_nameregister.c

index 5c9deeb4dbecee308f7b492c5cbfcf85ac588a23..0397f56512524275fac3cbbcc87ed5e4f2029b76 100644 (file)
@@ -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.