[SCM] Samba Shared Repository - branch master updated
Andreas Schneider
asn at samba.org
Wed Oct 16 10:56:02 UTC 2019
The branch, master has been updated
via f0abf62adcf s3:tests: Add smbspool test for CUPS-like "sanitized" Device URI in argv[0]
via 7259197bf71 s3:libsmb: Link libsmb against pthread
via d473f1e38c2 nsswitch: Link stress-nss-libwbclient against pthread
from b01169ff321 s3: VFS: Complete the removal of SMB_VFS_CHOWN()
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit f0abf62adcf4bda6dd7b36ce74695f8ac8ec79f6
Author: Bryan Mason <bmason at redhat.com>
Date: Wed Sep 25 18:49:56 2019 -0700
s3:tests: Add smbspool test for CUPS-like "sanitized" Device URI in argv[0]
Before calling a backend like smbspool, CUPS will set argv[0] to the
"sanitized" Device URI (the Device URI with username/password
information removed). These changes are intended to catch problems
with smbspool that may be created by this behavior (like
https://bugzilla.samba.org/show_bug.cgi?id=14128).
source3/script/tests/smbspool_argv_wrapper.c: added to emulate
CUPS-like behavior by setting argv[0] to the device URI before
exec()ing smbspool.
source3/script/tests/test_smbspool.sh: updated to use
smbspool_argv_wrapper to test the CUPS-like behavior described above.
Signed-off-by: Bryan Mason <bmason at redhat.com>
Reviewed-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Alexander Bokovoy <ab at samba.org>
Autobuild-User(master): Andreas Schneider <asn at cryptomilk.org>
Autobuild-Date(master): Wed Oct 16 10:55:04 UTC 2019 on sn-devel-184
commit 7259197bf716f8b81dea74beefe6ee3b1239f172
Author: Isaac Boukris <iboukris at gmail.com>
Date: Tue Oct 15 17:01:48 2019 +0300
s3:libsmb: Link libsmb against pthread
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14140
Signed-off-by: Isaac Boukris <iboukris at gmail.com>
Reviewed-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Alexander Bokovoy <ab at samba.org>
commit d473f1e38c2822746030516269b4d70032cf9b2e
Author: Isaac Boukris <iboukris at gmail.com>
Date: Tue Oct 15 13:52:42 2019 +0300
nsswitch: Link stress-nss-libwbclient against pthread
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14140
Signed-off-by: Isaac Boukris <iboukris at gmail.com>
Reviewed-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Alexander Bokovoy <ab at samba.org>
-----------------------------------------------------------------------
Summary of changes:
nsswitch/wscript_build | 2 +-
source3/libsmb/wscript | 1 +
source3/script/tests/smbspool_argv_wrapper.c | 72 ++++++++++++++++++++++++++++
source3/script/tests/test_smbspool.sh | 23 +++++++++
source3/wscript_build | 4 ++
5 files changed, 101 insertions(+), 1 deletion(-)
create mode 100644 source3/script/tests/smbspool_argv_wrapper.c
Changeset truncated at 500 lines:
diff --git a/nsswitch/wscript_build b/nsswitch/wscript_build
index 6acc4a19b9b..861ed2f23bf 100644
--- a/nsswitch/wscript_build
+++ b/nsswitch/wscript_build
@@ -20,7 +20,7 @@ bld.SAMBA_BINARY('nsstest',
if bld.CONFIG_SET('HAVE_PTHREAD'):
bld.SAMBA_BINARY('stress-nss-libwbclient',
source='stress-nss-libwbclient.c',
- deps='wbclient',
+ deps='wbclient pthread',
install=False
)
diff --git a/source3/libsmb/wscript b/source3/libsmb/wscript
index d9e933e9e9f..febff9df7fc 100644
--- a/source3/libsmb/wscript
+++ b/source3/libsmb/wscript
@@ -16,6 +16,7 @@ def build(bld):
libsmb_xattr.c
libsmb_setget.c''',
public_deps='''
+ pthread
talloc
smbconf
libsmb
diff --git a/source3/script/tests/smbspool_argv_wrapper.c b/source3/script/tests/smbspool_argv_wrapper.c
new file mode 100644
index 00000000000..7db788109d9
--- /dev/null
+++ b/source3/script/tests/smbspool_argv_wrapper.c
@@ -0,0 +1,72 @@
+/*
+ Wrapper for smbspool to test Device URI in argv[0]
+
+ Copyright (C) Bryan Mason 2019
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+
+/*
+ * Before calling a backend like smbspool, CUPS will set argv[0] to
+ * the Device URI. This program wraps a program like smbspool and
+ * sets argv[0] to the device URI before exec()ing the acutal backend
+ * program.
+ */
+
+int main(int argc, char *argv[], char *envp[])
+{
+ char **new_argv;
+ char *exec_path;
+ int a;
+ int rv;
+/*
+ * Expected parameters:
+ *
+ * smbspool_argv_wrapper smbspool uri job user title copies opts file(s)
+ * argv[0] 1 2 3 4 5 6 7 8
+ *
+ */
+ /* Allocate memory for the new arguments (exit on failure). */
+ new_argv = calloc(argc, sizeof(char *));
+ if (new_argv == 0) {
+ exit(ENOMEM);
+ }
+
+ /* Save the path to the smbspool executable */
+ exec_path = argv[1];
+
+ /*
+ * Shift the rest of the args so smbspool is called with:
+ *
+ * uri job user title copies opts file(s)
+ * argv[0] 1 2 3 4 5 6
+ */
+
+ for (a = 2; a < argc-1; a++) {
+ new_argv[a-2] = argv[a];
+ }
+
+ /* Execute smbspool with new arguments */
+ rv = execve(exec_path, new_argv, envp);
+ if (rv == -1) {
+ exit(errno);
+ }
+
+ /* Avoid compiler error/warning */
+ return 0;
+}
diff --git a/source3/script/tests/test_smbspool.sh b/source3/script/tests/test_smbspool.sh
index f28c0909334..7ba03f01fc7 100755
--- a/source3/script/tests/test_smbspool.sh
+++ b/source3/script/tests/test_smbspool.sh
@@ -22,6 +22,7 @@ incdir=`dirname $0`/../../../testprogs/blackbox
samba_bindir="$BINDIR"
samba_vlp="$samba_bindir/vlp"
samba_smbspool="$samba_bindir/smbspool"
+samba_argv_wrapper="$samba_bindir/smbspool_argv_wrapper"
samba_smbtorture3="$samba_bindir/smbtorture3"
samba_smbspool_krb5="$samba_bindir/smbspool_krb5_wrapper"
@@ -224,6 +225,28 @@ testit "smbspool print DEVICE_URI example.ps via stdin" \
failed=$(expr $failed + 1)
unset DEVICE_URI
+testit "vlp verify example.ps" \
+ test_vlp_verify \
+ || failed=$(expr $failed + 1)
+
+DEVICE_URI="smb://$USERNAME:$PASSWORD@$SERVER_IP/print1"
+export DEVICE_URI
+testit "smbspool print sanitized Device URI in argv0 example.ps" \
+ $smbspool_argv_wrapper $samba_smbspool smb://$SERVER_IP/print1 200 $USERNAME "Testprint" 1 "options" $SRCDIR/testdata/printing/example.ps || \
+ failed=$(expr $failed + 1)
+unset DEVICE_URI
+
+testit "vlp verify example.ps" \
+ test_vlp_verify \
+ || failed=$(expr $failed + 1)
+
+DEVICE_URI="smb://$USERNAME:$PASSWORD@$SERVER_IP/print1"
+export DEVICE_URI
+testit "smbspool print sanitized Device URI in argv0 example.ps via stdin" \
+ $smbspool_argv_wrapper $samba_smbspool smb://$SERVER_IP/print1 200 $USERNAME "Testprint" 1 "options" < $SRCDIR/testdata/printing/example.ps || \
+ failed=$(expr $failed + 1)
+unset DEVICE_URI
+
testit "vlp verify example.ps" \
test_vlp_verify \
|| failed=$(expr $failed + 1)
diff --git a/source3/wscript_build b/source3/wscript_build
index 829636a77c5..94ea02ba61e 100644
--- a/source3/wscript_build
+++ b/source3/wscript_build
@@ -1151,6 +1151,10 @@ bld.SAMBA3_BINARY('smbspool_krb5_wrapper',
install_path='${LIBEXECDIR}/samba',
enabled=bld.CONFIG_SET('HAVE_CUPS'))
+bld.SAMBA3_BINARY('smbspool_argv_wrapper',
+ source='script/tests/smbspool_argv_wrapper.c',
+ install=False)
+
bld.SAMBA3_BINARY('locktest2',
source='torture/locktest2.c',
deps='''
--
Samba Shared Repository
More information about the samba-cvs
mailing list