The branch, master has been updated
via a3f129f6634 s3:smbd: disable "vfs mkdir use tmp name = auto" on
OpenBSD
from 9675d8aed8e ctdb-utils: Fix incorrect FSF address
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit a3f129f66346dcec41a01caf8060fe1a9da484ac
Author: Ralph Boehme <[email protected]>
Date: Tue Mar 4 17:33:44 2025 +0100
s3:smbd: disable "vfs mkdir use tmp name = auto" on OpenBSD
This is the simplest way to avoid a regression.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15801
Pair-Programmed-With: Stefan Metzmacher <[email protected]>
Signed-off-by: Ralph Boehme <[email protected]>
Signed-off-by: Stefan Metzmacher <[email protected]>
Autobuild-User(master): Stefan Metzmacher <[email protected]>
Autobuild-Date(master): Wed Mar 5 12:37:40 UTC 2025 on atb-devel-224
-----------------------------------------------------------------------
Summary of changes:
docs-xml/smbdotconf/vfs/vfsmkdirusetmpname.xml | 2 ++
source3/smbd/open.c | 13 +++++++++++++
source3/wscript | 3 +++
3 files changed, 18 insertions(+)
Changeset truncated at 500 lines:
diff --git a/docs-xml/smbdotconf/vfs/vfsmkdirusetmpname.xml
b/docs-xml/smbdotconf/vfs/vfsmkdirusetmpname.xml
index 92a39f8f541..a0d733c47f8 100644
--- a/docs-xml/smbdotconf/vfs/vfsmkdirusetmpname.xml
+++ b/docs-xml/smbdotconf/vfs/vfsmkdirusetmpname.xml
@@ -31,6 +31,8 @@
<smbconfoption name="inherit permissions"/>,
<smbconfoption name="nt acl support"/> or
<smbconfoption name="store dos attributes"/>.
+ Note on OpenBSD Auto (the default) is mapped to <constant>no</constant>,
+ see <ulink
url="https://bugzilla.samba.org/show_bug.cgi?id=15801">https://bugzilla.samba.org/show_bug.cgi?id=15801</ulink>.
</para>
<para>
diff --git a/source3/smbd/open.c b/source3/smbd/open.c
index 3982c39ed47..771734f6203 100644
--- a/source3/smbd/open.c
+++ b/source3/smbd/open.c
@@ -4564,6 +4564,19 @@ static NTSTATUS mkdir_internal(connection_struct *conn,
need_tmpname = true;
}
+#ifdef OPENBSD
+ /*
+ * OpenBSD requires to have write permissions
+ * on both source and destimation of renameat(),
+ * see https://bugzilla.samba.org/show_bug.cgi?id=15801
+ *
+ * For now just disable the new code by default.
+ */
+ if (vfs_use_tmp == Auto) {
+ vfs_use_tmp = false;
+ }
+#endif
+
if (vfs_use_tmp != Auto) {
need_tmpname = vfs_use_tmp;
}
diff --git a/source3/wscript b/source3/wscript
index f3c819a77d4..bf77040fd4f 100644
--- a/source3/wscript
+++ b/source3/wscript
@@ -457,6 +457,9 @@ vsyslog
conf.DEFINE('HAVE_FREEBSD_SUNACL_H', '1')
conf.CHECK_FUNCS_IN(['acl'], 'sunacl')
conf.DEFINE('STAT_ST_BLOCKSIZE', '512')
+ elif (host_os.rfind('openbsd') > -1):
+ conf.DEFINE('OPENBSD', 1)
+ conf.DEFINE('STAT_ST_BLOCKSIZE', '512')
elif (host_os.rfind('irix') > -1):
conf.DEFINE('IRIX', 1)
conf.DEFINE('STAT_ST_BLOCKSIZE', '512')
--
Samba Shared Repository