The branch, v4-12-test has been updated via 50c2ea410b4 s3: smbd: Add call to conn_setup_case_options() to create_conn_struct_as_root(). via d89ccfc1c7d s3: smbd: Factor out setting up case parameters for a share to a function - conn_setup_case_options(). via 7ec45672a30 build: remove smbd_conn private library from 552548ff00e libcli/smb: allow unexpected padding in SMB2 IOCTL responses
https://git.samba.org/?p=samba.git;a=shortlog;h=v4-12-test - Log ----------------------------------------------------------------- commit 50c2ea410b4acd5a311d3509c2554ae8e035dd1c Author: Jeremy Allison <j...@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 <j...@samba.org> Reviewed-by: Anoop C S <anoo...@samba.org> Autobuild-User(master): Anoop C S <anoo...@samba.org> Autobuild-Date(master): Wed Jan 13 18:14:31 UTC 2021 on sn-devel-184 (cherry picked from commit 39ce73321093a0a5e25f574d0d32d7f88892de46) Autobuild-User(v4-12-test): Karolin Seeger <ksee...@samba.org> Autobuild-Date(v4-12-test): Wed Jan 20 11:29:51 UTC 2021 on sn-devel-184 commit d89ccfc1c7d23b6e2a3bc80c1acd189000ca7cbd Author: Jeremy Allison <j...@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 <j...@samba.org> Reviewed-by: Anoop C S <anoo...@samba.org> (cherry picked from commit ab7700177c2badbf8ed649985be8029223b6e946) commit 7ec45672a30a428c3162275f5d47245a012ce81a Author: Ralph Boehme <s...@samba.org> Date: Sun Sep 27 08:52:58 2020 +0200 build: remove smbd_conn private library This is not needed anymore since 6822baa2920f30374ec84363497d97e24f359fab. Needed here for: BUG: https://bugzilla.samba.org/show_bug.cgi?id=14612 Signed-off-by: Ralph Boehme <s...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 80ac7fa7c4c728bef4f947872c090fec35fb26f0) ----------------------------------------------------------------------- Summary of changes: source3/smbd/conn.c | 19 +++++++++++++++++++ source3/smbd/msdfs.c | 2 ++ source3/smbd/proto.h | 1 + source3/smbd/service.c | 11 +---------- source3/wscript_build | 7 +------ 5 files changed, 24 insertions(+), 16 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/smbd/conn.c b/source3/smbd/conn.c index 6d9ea419f8d..6a94d344f12 100644 --- a/source3/smbd/conn.c +++ b/source3/smbd/conn.c @@ -228,3 +228,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 c57866f7939..e234dc2ebd7 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 2ea90405b47..206406a9fe9 100644 --- a/source3/smbd/proto.h +++ b/source3/smbd/proto.h @@ -154,6 +154,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 03125a30dad..bf5e474ddff 100644 --- a/source3/smbd/service.c +++ b/source3/smbd/service.c @@ -569,16 +569,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_smb_encrypt(snum); if (conn->encrypt_level > SMB_SIGNING_OFF) { diff --git a/source3/wscript_build b/source3/wscript_build index 10d9f71ae76..d2793cacb92 100644 --- a/source3/wscript_build +++ b/source3/wscript_build @@ -606,11 +606,6 @@ bld.SAMBA3_LIBRARY('smbconf', pc_files=[], vnum='0') -bld.SAMBA3_LIBRARY('smbd_conn', - source='smbd/conn.c', - deps='samba3-util samba-util', - private_library=True) - bld.SAMBA3_SUBSYSTEM('sysquotas', source=''' lib/sysquotas.c @@ -725,6 +720,7 @@ bld.SAMBA3_LIBRARY('smbd_base', smbd/notify_msg.c smbd/build_options.c smbd/smb1_utils.c + smbd/conn.c ''' + NOTIFY_SOURCES, deps=''' talloc @@ -737,7 +733,6 @@ bld.SAMBA3_LIBRARY('smbd_base', vfs_posixacl inotify samba3core - smbd_conn param_service AVAHI PRINTBASE -- Samba Shared Repository