[SCM] Samba Shared Repository - branch master updated
Anoop C S
anoopcs at samba.org
Wed Jan 13 18:15:01 UTC 2021
The branch, master has been updated
via 39ce7332109 s3: smbd: Add call to conn_setup_case_options() to create_conn_struct_as_root().
via ab7700177c2 s3: smbd: Factor out setting up case parameters for a share to a function - conn_setup_case_options().
from 081afc495f5 WHATSNEW: Change order.
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 39ce73321093a0a5e25f574d0d32d7f88892de46
Author: Jeremy Allison <jra at samba.org>
Date: Tue Jan 12 11:44:44 2021 -0800
s3: smbd: Add call to conn_setup_case_options() to create_conn_struct_as_root().
Ensures temporary DFS share doesn't leave the case parameters set
as zero (i.e.:
conn->case sensitive = 0
conn->share_case_preserve = 0
and default case is lower
which can cause problems doing a DFS_GET_REFERRALS request).
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14612
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Anoop C S <anoopcs at samba.org>
Autobuild-User(master): Anoop C S <anoopcs at samba.org>
Autobuild-Date(master): Wed Jan 13 18:14:31 UTC 2021 on sn-devel-184
commit ab7700177c2badbf8ed649985be8029223b6e946
Author: Jeremy Allison <jra at samba.org>
Date: Tue Jan 12 11:39:51 2021 -0800
s3: smbd: Factor out setting up case parameters for a share to a function - conn_setup_case_options().
Will allow it to be reused in the msdfs temporary share code.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14612
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Anoop C S <anoopcs at samba.org>
-----------------------------------------------------------------------
Summary of changes:
source3/smbd/conn.c | 19 +++++++++++++++++++
source3/smbd/msdfs.c | 2 ++
source3/smbd/proto.h | 1 +
source3/smbd/service.c | 11 +----------
4 files changed, 23 insertions(+), 10 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/smbd/conn.c b/source3/smbd/conn.c
index 003926c97f6..044242d5697 100644
--- a/source3/smbd/conn.c
+++ b/source3/smbd/conn.c
@@ -232,3 +232,22 @@ void conn_free(connection_struct *conn)
conn_free_internal(conn);
}
+
+/*
+ * Correctly initialize a share with case options.
+ */
+void conn_setup_case_options(connection_struct *conn)
+{
+ int snum = conn->params->service;
+
+ if (lp_case_sensitive(snum) == Auto) {
+ /* We will be setting this per packet. Set to be case
+ * insensitive for now. */
+ conn->case_sensitive = false;
+ } else {
+ conn->case_sensitive = (bool)lp_case_sensitive(snum);
+ }
+
+ conn->case_preserve = lp_preserve_case(snum);
+ conn->short_case_preserve = lp_short_preserve_case(snum);
+}
diff --git a/source3/smbd/msdfs.c b/source3/smbd/msdfs.c
index 7b5ea251501..dc07727f007 100644
--- a/source3/smbd/msdfs.c
+++ b/source3/smbd/msdfs.c
@@ -317,6 +317,8 @@ static NTSTATUS create_conn_struct_as_root(TALLOC_CTX *ctx,
vfs_user = get_current_username();
}
+ conn_setup_case_options(conn);
+
set_conn_connectpath(conn, connpath);
/*
diff --git a/source3/smbd/proto.h b/source3/smbd/proto.h
index 7d6f8eda607..879ec71ae94 100644
--- a/source3/smbd/proto.h
+++ b/source3/smbd/proto.h
@@ -156,6 +156,7 @@ connection_struct *conn_new(struct smbd_server_connection *sconn);
bool conn_idle_all(struct smbd_server_connection *sconn, time_t t);
void conn_clear_vuid_caches(struct smbd_server_connection *sconn, uint64_t vuid);
void conn_free(connection_struct *conn);
+void conn_setup_case_options(connection_struct *conn);
void conn_force_tdis(
struct smbd_server_connection *sconn,
bool (*check_fn)(struct connection_struct *conn,
diff --git a/source3/smbd/service.c b/source3/smbd/service.c
index b1ea0ea6a88..afdea38b016 100644
--- a/source3/smbd/service.c
+++ b/source3/smbd/service.c
@@ -557,16 +557,7 @@ static NTSTATUS make_connection_snum(struct smbXsrv_connection *xconn,
( lp_enable_asu_support() && strequal(dev,"ADMIN$")) );
/* Case options for the share. */
- if (lp_case_sensitive(snum) == Auto) {
- /* We will be setting this per packet. Set to be case
- * insensitive for now. */
- conn->case_sensitive = False;
- } else {
- conn->case_sensitive = (bool)lp_case_sensitive(snum);
- }
-
- conn->case_preserve = lp_preserve_case(snum);
- conn->short_case_preserve = lp_short_preserve_case(snum);
+ conn_setup_case_options(conn);
conn->encrypt_level = lp_server_smb_encrypt(snum);
if (conn->encrypt_level > SMB_ENCRYPTION_OFF) {
--
Samba Shared Repository
More information about the samba-cvs
mailing list