+ /* Add any NETBIOS name aliases. Ensure that the first entry
+ is equal to myname. */
+ /* Work out the max number of netbios aliases that we have */
+ ptr=lp_netbios_aliases();
+ for (namecount=0; next_token(&ptr,nbname,NULL); namecount++)
+ ;
+ if (*myname)
+ namecount++;
+
+ /* Allocate space for the netbios aliases */
+ if((my_netbios_names=(char **)malloc(sizeof(char *)*(namecount+1))) == NULL)
+ {
+ DEBUG(0,("init_structs: malloc fail.\n"));
+ return False;
+ }
+
+ /* Use the myname string first */
+ namecount=0;
+ if (*myname)
+ my_netbios_names[namecount++] = myname;
+
+ ptr=lp_netbios_aliases();
+ while (next_token(&ptr,nbname,NULL)) {
+ strupper(nbname);
+ /* Look for duplicates */
+ nodup=1;
+ for(n=0; n<namecount; n++) {
+ if (strcmp(nbname, my_netbios_names[n])==0)
+ nodup=0;
+ }
+ if (nodup)
+ my_netbios_names[namecount++]=strdup(nbname);
+ }
+
+ /* Check the strdups succeeded. */
+ for(n = 0; n < namecount; n++)
+ if(my_netbios_names[n]==NULL)
+ {
+ DEBUG(0,("init_structs: malloc fail when allocating names.\n"));
+ return False;
+ }
+
+ /* Terminate name list */
+ my_netbios_names[namecount++]=NULL;
+