diff options
Diffstat (limited to 'usr/src/lib/smbsrv/libsmb/common/smb_lgrp.c')
-rw-r--r-- | usr/src/lib/smbsrv/libsmb/common/smb_lgrp.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/usr/src/lib/smbsrv/libsmb/common/smb_lgrp.c b/usr/src/lib/smbsrv/libsmb/common/smb_lgrp.c index 8435a20c32..406d7c5db0 100644 --- a/usr/src/lib/smbsrv/libsmb/common/smb_lgrp.c +++ b/usr/src/lib/smbsrv/libsmb/common/smb_lgrp.c @@ -1104,16 +1104,21 @@ smb_lgrp_start(void) (void) mutex_unlock(&smb_localgrp.lg_mutex); for (i = 0; i < ngrp; i++) { + char *tname; + if ((wka = smb_wka_lookup_name(builtin[i])) == NULL) continue; - if (!smb_lgrp_exists(wka->wka_name)) { - rc = smb_lgrp_add(wka->wka_name, wka->wka_desc); + if ((tname = strdup(wka->wka_name)) == NULL) + return (SMB_LGRP_NO_MEMORY); + if (!smb_lgrp_exists(tname)) { + rc = smb_lgrp_add(tname, wka->wka_desc); if (rc != SMB_LGRP_SUCCESS) { syslog(LOG_DEBUG, "failed to add %s", - wka->wka_name); + tname); } } + free(tname); } return (SMB_LGRP_SUCCESS); |