summaryrefslogtreecommitdiff
path: root/usr/src/lib/smbsrv/libmlsvc/common/smb_autohome.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/smbsrv/libmlsvc/common/smb_autohome.c')
-rw-r--r--usr/src/lib/smbsrv/libmlsvc/common/smb_autohome.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/usr/src/lib/smbsrv/libmlsvc/common/smb_autohome.c b/usr/src/lib/smbsrv/libmlsvc/common/smb_autohome.c
index 6d0610add3..bc3f526046 100644
--- a/usr/src/lib/smbsrv/libmlsvc/common/smb_autohome.c
+++ b/usr/src/lib/smbsrv/libmlsvc/common/smb_autohome.c
@@ -19,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -224,8 +224,9 @@ void
smb_autohome_setent(void)
{
smb_autohome_info_t *si;
- char *mappath;
+ char path[MAXNAMELEN];
char filename[MAXNAMELEN];
+ int rc;
if ((si = smb_autohome_getinfo()) != 0) {
(void) fseek(si->fp, 0L, SEEK_SET);
@@ -236,12 +237,12 @@ smb_autohome_setent(void)
if ((si = &smb_ai) == 0)
return;
- smb_config_rdlock();
- if ((mappath = smb_config_get(SMB_CI_AUTOHOME_MAP)) == NULL)
- mappath = SMB_AUTOHOME_PATH;
- (void) snprintf(filename, MAXNAMELEN, "%s/%s", mappath,
+ rc = smb_config_getstr(SMB_CI_AUTOHOME_MAP, path, sizeof (path));
+ if (rc != SMBD_SMF_OK)
+ return;
+
+ (void) snprintf(filename, MAXNAMELEN, "%s/%s", path,
SMB_AUTOHOME_FILE);
- smb_config_unlock();
if ((si->fp = fopen(filename, "r")) == NULL)
return;