summaryrefslogtreecommitdiff
path: root/source3/nmbd
diff options
context:
space:
mode:
Diffstat (limited to 'source3/nmbd')
-rw-r--r--source3/nmbd/nmbd.c47
1 files changed, 26 insertions, 21 deletions
diff --git a/source3/nmbd/nmbd.c b/source3/nmbd/nmbd.c
index 2969c332d5..8a6bf383d1 100644
--- a/source3/nmbd/nmbd.c
+++ b/source3/nmbd/nmbd.c
@@ -569,8 +569,10 @@ static BOOL init_structs(void)
*/
/* Work out the max number of netbios aliases that we have */
ptr = lp_netbios_aliases();
- for( namecount=0; *ptr; namecount++,ptr++ )
- ;
+ namecount = 0;
+ if (ptr)
+ for( ; *ptr; namecount++,ptr++ )
+ ;
if ( *global_myname )
namecount++;
@@ -588,28 +590,31 @@ static BOOL init_structs(void)
my_netbios_names[namecount++] = global_myname;
ptr = lp_netbios_aliases();
- while ( *ptr )
+ if (ptr)
{
- nbname = strdup(*ptr);
- if (nbname == NULL)
+ while ( *ptr )
{
- DEBUG(0,("init_structs: malloc fail when allocating names.\n"));
- return False;
+ nbname = strdup(*ptr);
+ if (nbname == NULL)
+ {
+ DEBUG(0,("init_structs: malloc fail when allocating names.\n"));
+ return False;
+ }
+ strupper( nbname );
+ /* Look for duplicates */
+ nodup=1;
+ for( n=0; n<namecount; n++ )
+ {
+ if( 0 == strcmp( nbname, my_netbios_names[n] ) )
+ nodup=0;
+ }
+ if (nodup)
+ my_netbios_names[namecount++] = nbname;
+ else
+ free(nbname);
+
+ ptr++;
}
- strupper( nbname );
- /* Look for duplicates */
- nodup=1;
- for( n=0; n<namecount; n++ )
- {
- if( 0 == strcmp( nbname, my_netbios_names[n] ) )
- nodup=0;
- }
- if (nodup)
- my_netbios_names[namecount++] = nbname;
- else
- free(nbname);
-
- ptr++;
}
/* Terminate name list */