diff options
author | Simo Sorce <idra@samba.org> | 2010-02-11 16:12:29 -0500 |
---|---|---|
committer | Simo Sorce <idra@samba.org> | 2010-02-11 16:27:17 -0500 |
commit | 5d92d969dda450cc3564dd2265d2b042d832c542 (patch) | |
tree | a7e62129dce16e8b9509db7ac3d85566ca38a2ac /source3/smbd | |
parent | 94865e4dbd3d721c9855aada8c55e02be8b3881e (diff) | |
download | samba-5d92d969dda450cc3564dd2265d2b042d832c542.tar.gz samba-5d92d969dda450cc3564dd2265d2b042d832c542.tar.bz2 samba-5d92d969dda450cc3564dd2265d2b042d832c542.zip |
Introduce lp_safe_widelinks()
This way we avoid any chance that a configuration reload may turn
back on wide links when unix extensions are enabled.
Diffstat (limited to 'source3/smbd')
-rw-r--r-- | source3/smbd/filename.c | 2 | ||||
-rw-r--r-- | source3/smbd/service.c | 8 | ||||
-rw-r--r-- | source3/smbd/vfs.c | 2 |
3 files changed, 7 insertions, 5 deletions
diff --git a/source3/smbd/filename.c b/source3/smbd/filename.c index ab79dfd926..73a3c36062 100644 --- a/source3/smbd/filename.c +++ b/source3/smbd/filename.c @@ -854,7 +854,7 @@ NTSTATUS check_name(connection_struct *conn, const char *name) } } - if (!lp_widelinks(SNUM(conn)) || !lp_symlinks(SNUM(conn))) { + if (!lp_safe_widelinks(SNUM(conn)) || !lp_symlinks(SNUM(conn))) { NTSTATUS status = check_reduced_name(conn,name); if (!NT_STATUS_IS_OK(status)) { DEBUG(5,("check_name: name %s failed with %s\n",name, diff --git a/source3/smbd/service.c b/source3/smbd/service.c index 1e8c15bfde..4efa63e1dc 100644 --- a/source3/smbd/service.c +++ b/source3/smbd/service.c @@ -858,12 +858,14 @@ connection_struct *make_connection_snum(struct smbd_server_connection *sconn, } /* ROOT Activities: */ + /* explicitly check with lp_widelinks() instead of using + * lp_safe_widelinks() here so that we can correctly warn + * in the logs. */ if (lp_unix_extensions() && lp_widelinks(snum)) { DEBUG(0,("Share '%s' has wide links and unix extensions enabled. " "These parameters are incompatible. " - "Disabling wide links for this share.\n", + "Wide links will be disabled for this share.\n", lp_servicename(snum) )); - lp_do_parameter(snum, "wide links", "False"); } /* @@ -959,7 +961,7 @@ connection_struct *make_connection_snum(struct smbd_server_connection *sconn, * below this directory. We must do this after the VFS init as we * depend on the realpath() pointer in the vfs table. JRA. */ - if (!lp_widelinks(snum)) { + if (!lp_safe_widelinks(snum)) { if (!canonicalize_connect_path(conn)) { DEBUG(0, ("canonicalize_connect_path failed " "for service %s, path %s\n", diff --git a/source3/smbd/vfs.c b/source3/smbd/vfs.c index 94bdb1f495..b575800335 100644 --- a/source3/smbd/vfs.c +++ b/source3/smbd/vfs.c @@ -928,7 +928,7 @@ NTSTATUS check_reduced_name(connection_struct *conn, const char *fname) } /* Check for widelinks allowed. */ - if (!lp_widelinks(SNUM(conn))) { + if (!lp_safe_widelinks(SNUM(conn))) { const char *conn_rootdir; conn_rootdir = SMB_VFS_CONNECTPATH(conn, fname); |