[SCM] Samba Shared Repository - branch master updated
Jeremy Allison
jra at samba.org
Tue Mar 16 18:18:01 UTC 2021
The branch, master has been updated
via f5c8b1aa834 Bug 9931: change pytalloc source to LGPL
via fb229276e49 fuzz:afl main: run the initialisation function
via e0dd4d0ac02 fuzz: add a LLVMFuzzerInitialize() to all fuzzers
via 17602fefded fuzz:afl main: add a diagnostic message
via c9f51f16720 fuzz/afl main: don't treat fuzzer as fuzzee
via d26b7002588 autobuild: fuzz: correctly spell AFL build option
via 9e3f0fa34b4 rpc_server: Fix a -Werror=format-truncation error
via d50bf88d20c rpcclient: Fix a DBG msg: This is not dcerpc_winreg_int_openkey()
via 174b9115245 winbindd: Improve a DEBUG message in sam_name_to_sid()
via 18f3197808c rpcclient: Factor out cmd_set_auth()
via 698c6de66e2 rpcclient: Convert binding-related commands to RPC_RTYPE_BINDING
via e85640279b4 rpcclient: Add RPC_RTYPE_BINDING
via cf2a943b8de rpcclient: Simplify do_cmd
via b546b87b78b rpcclient: Avoid a few implicit NULL assignments
via 386f62fb572 rpc_server: Initialize variables in get_md4pw()
via 35ecbb3221f rpc_server: Save roundtrips into samr for machine pwd changes
via c6ccf1b91ba auth3: Make it a bit easier to #include "source3/include/auth.h"
via e6c64076235 auth3: Align integer types
via bb5bf508197 lib: Remove init_names()
via 57d548b5020 nmbd: Move my_netbios_names() to nmbd
via 5831e8f2301 lib: Unfold calls to my_netbios_names() in util_names.c
via 088386bbeda lib: Decouple is_myname() from init_names()
via cf43f331be8 lib: Make pidfile_path_create() return the existing PID on conflict
via 9614273aa3d librpc: Make "dcesrv_context->callbacks" a pointer
via c8f47dfc03d torture: Make srv_cb static
via 8d37c632b9a rpc_server4: Make "srv_callbacks" static
via 403eabe4fc3 librpc: Add "private_data" to struct dcesrv_context_callbacks
via e338d4fab47 printing: Move rap2jobid functions to their own file
via 46cc9b51220 printing: Introduce printer_list_printername_exists()
via e09f29eedd7 printing: Remove simple wrapper function pcap_printer_read_fn()
via b6b0c0cb7e0 lib: Use FIONREAD in wait_for_read_send/recv
via c58e9aa482c tests: Fix a typo
via 6e41d1f3855 printing: Fix a typo
via 6fb317227dc winbind: Simplify winbindd_samr.c
via bdba1cd09b5 s3: VFS: Remove vfs_tru64acl.[c|h]
from fd1b09bb3b2 VFS: glusterfs: Ensure vfs_gluster_fsetxattr() only uses an io fd for a handle based call.
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit f5c8b1aa834b53326efe243908b86ad969668c98
Author: David Disseldorp <ddiss at samba.org>
Date: Wed Jun 5 15:48:24 2013 +0200
Bug 9931: change pytalloc source to LGPL
pytalloc is currently GPL, while the rest of talloc is LGPL.
This situation arose because pytalloc was originally developed under
source4/scripting/python/, and moved into talloc proper with commit
0f043c197c473c801fc32c727194b5a2d6ae232f ("Move pytalloc to talloc
directory.", October 2008).
BUG: https://bugzilla.samba.org/show_bug.cgi?id=9931
Signed-off-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Jelmer Vernooij <jelmer at samba.org>
Reviewed-by: Björn Jacke <bjacke at samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Autobuild-User(master): Jeremy Allison <jra at samba.org>
Autobuild-Date(master): Tue Mar 16 18:17:43 UTC 2021 on sn-devel-184
commit fb229276e49af93fd49381190be54650cfd6ac5b
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Jan 28 17:31:28 2021 +1300
fuzz:afl main: run the initialisation function
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit e0dd4d0ac02c7040e8f6d346d4a8b7d087adfc04
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri Jan 29 14:11:46 2021 +1300
fuzz: add a LLVMFuzzerInitialize() to all fuzzers
To compile the AFL binaries, we need every fuzzer to have a consistent
set of functions. Some fuzzers require the initialize function, so all
the rest must have an empty one.
AFL binaires are handy for testing the fuzz results in a less magical
environment than libfuzzer/honggfuzz give you.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 17602fefdeddaf7c26d451f7e3350c43ccb9a0e9
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Jan 28 17:33:22 2021 +1300
fuzz:afl main: add a diagnostic message
LLVMFuzzerTestOneInput() NEVER returns non-zero, but if it does, we might as well
know what made it do so
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit c9f51f167201716b212cf0e7ad45ca2d5d50cade
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Jan 28 17:24:47 2021 +1300
fuzz/afl main: don't treat fuzzer as fuzzee
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit d26b70025885ad4cdf0347e637de701cf379b8eb
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Jan 28 17:06:28 2021 +1300
autobuild: fuzz: correctly spell AFL build option
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 9e3f0fa34b47a2dbf910c0942276b3ec06fdab6c
Author: Volker Lendecke <vl at samba.org>
Date: Tue Feb 9 12:26:20 2021 +0100
rpc_server: Fix a -Werror=format-truncation error
gcc gets this wrong, it believes %u can write up to
"2147483647" (2^31-1). Silence this with an easy patch.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit d50bf88d20cd65827e853300ce658e850e7603a3
Author: Volker Lendecke <vl at samba.org>
Date: Tue Feb 2 15:12:55 2021 +0100
rpcclient: Fix a DBG msg: This is not dcerpc_winreg_int_openkey()
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 174b911524556127671a828ed9604f97984ecf37
Author: Volker Lendecke <vl at samba.org>
Date: Tue Feb 23 08:16:04 2021 +0100
winbindd: Improve a DEBUG message in sam_name_to_sid()
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 18f3197808c894fa76cc3a1b04550b3ce1be79f3
Author: Volker Lendecke <vl at samba.org>
Date: Sun Feb 7 14:38:34 2021 +0100
rpcclient: Factor out cmd_set_auth()
sign, seal and packet did exactly the same wrt authentication
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 698c6de66e24ba5a726956ba47aeee3331426258
Author: Volker Lendecke <vl at samba.org>
Date: Sat Feb 6 22:21:01 2021 +0100
rpcclient: Convert binding-related commands to RPC_RTYPE_BINDING
Purely cosmetic at this point, will become useful soon
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit e85640279b4a78555b4bfd612d326df2c73ced29
Author: Volker Lendecke <vl at samba.org>
Date: Sat Feb 6 21:33:41 2021 +0100
rpcclient: Add RPC_RTYPE_BINDING
Purely transport-related commands don't need the cli_state.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit cf2a943b8de5428d1fd43f57f1eee397020ef122
Author: Volker Lendecke <vl at samba.org>
Date: Sat Feb 6 22:18:27 2021 +0100
rpcclient: Simplify do_cmd
Reduce indentation by an early "continue;", simplify if-expression
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit b546b87b78bddae0fd8b3132e678fcece0b2f71d
Author: Volker Lendecke <vl at samba.org>
Date: Sat Feb 6 21:35:56 2021 +0100
rpcclient: Avoid a few implicit NULL assignments
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 386f62fb572dfca97631cf970f2847c920cc1351
Author: Volker Lendecke <vl at samba.org>
Date: Sun Mar 14 10:18:12 2021 +0100
rpc_server: Initialize variables in get_md4pw()
My gcc complained at one point about uninitialized vars
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 35ecbb3221f156923703a591d90be1e3518c2d98
Author: Volker Lendecke <vl at samba.org>
Date: Sun Mar 14 10:05:33 2021 +0100
rpc_server: Save roundtrips into samr for machine pwd changes
We already have the machine SID, no need to look it up again.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit c6ccf1b91ba54d64b088a27002a12578f95ad63f
Author: Volker Lendecke <vl at samba.org>
Date: Fri Feb 5 15:00:00 2021 +0100
auth3: Make it a bit easier to #include "source3/include/auth.h"
Avoid using "uchar" in source3/auth/proto.h, this is #defined in includes.h
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit e6c6407623543ba3dff330dc459cbf0620f0954f
Author: Volker Lendecke <vl at samba.org>
Date: Thu Mar 4 11:42:25 2021 +0100
auth3: Align integer types
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit bb5bf508197205f6a9d17b3418a9291b934bd9fa
Author: Volker Lendecke <vl at samba.org>
Date: Sat Mar 13 22:07:53 2021 +0100
lib: Remove init_names()
is_myname() looks at lp_* directly, nmbd maintains its own list: We don't
need the baroque loadparm handler anymore.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 57d548b5020b5071e80d6b07c168c8207b52df25
Author: Volker Lendecke <vl at samba.org>
Date: Sat Mar 13 21:56:53 2021 +0100
nmbd: Move my_netbios_names() to nmbd
nmbd is the heaviest user of this. The only other user was
is_myname(), which is used in quite a few places in source3.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 5831e8f2301a062f1e8a0113c1bda997701f38cf
Author: Volker Lendecke <vl at samba.org>
Date: Sat Mar 13 21:41:57 2021 +0100
lib: Unfold calls to my_netbios_names() in util_names.c
This will all go away in a few patches, this is an intermediate step.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 088386bbedabc11c1f406a3867e1b06b2fdb560f
Author: Volker Lendecke <vl at samba.org>
Date: Wed Feb 3 10:15:00 2021 +0100
lib: Decouple is_myname() from init_names()
In a new binary I forgot "init_names()" in main and it crashed in
auth3. We should not have to call init_names() everywhere I guess.
The my_netbios_names() array is free of duplicates, but as we don't
expect more than a handful of netbios aliases this does not matter for
just checking existence of a name. And moreover, a properly configured
smb.conf doesn't have tons of dups in "netbios aliases" anyway.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit cf43f331be818c6253bb45fcfa89327a3c858188
Author: Volker Lendecke <vl at samba.org>
Date: Mon Feb 15 11:38:18 2021 +0100
lib: Make pidfile_path_create() return the existing PID on conflict
Use F_GETLK to get the lock holder PID, this is more accurate than
reading the file contents: A conflicting process might not have
written its PID yet. Also, F_GETLK easily allows to do a retry if the
lock holder just died.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 9614273aa3d0d7c7113d25b2204ebb292405c7a8
Author: Volker Lendecke <vl at samba.org>
Date: Tue Feb 2 15:07:35 2021 +0100
librpc: Make "dcesrv_context->callbacks" a pointer
This structure just grew from 3 to 6 pointers, avoid making a copy of
this. All callers of dcesrv_init_context() have this as a static
struct in the C object, so a pointer to that won't change.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit c8f47dfc03de58525a49824725a3c367d393433b
Author: Volker Lendecke <vl at samba.org>
Date: Sat Mar 13 16:34:23 2021 +0100
torture: Make srv_cb static
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 8d37c632b9a4d33e24ff02e6b72590d33cb9907d
Author: Volker Lendecke <vl at samba.org>
Date: Sat Mar 13 16:33:21 2021 +0100
rpc_server4: Make "srv_callbacks" static
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 403eabe4fc3d43d80f3b33f104a8e35296b60fef
Author: Volker Lendecke <vl at samba.org>
Date: Fri Jan 29 18:16:08 2021 +0100
librpc: Add "private_data" to struct dcesrv_context_callbacks
Not used right now, but we should never have callbacks without a
"private_data" pointer. Some of the callbacks could even today benefit
from this.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit e338d4fab47d78e28139979480902c8f95986a08
Author: Volker Lendecke <vl at samba.org>
Date: Thu Mar 11 18:02:44 2021 +0100
printing: Move rap2jobid functions to their own file
This will make it easier to split out the spoolss functions later
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 46cc9b512200fcd435be313e915c1b1fc0deb428
Author: Volker Lendecke <vl at samba.org>
Date: Sat Mar 13 14:34:35 2021 +0100
printing: Introduce printer_list_printername_exists()
Replace pcap_printername_ok(). Slightly different semantics: If the
printer list db has a corrupted record, this is not detected.
Why this patch? pcap_printername_ok() is a simple wrapper around the
tdb accessing function, and this reduces a dependency on pcap.c
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit e09f29eedd718f4e02fd0de55e69af877713b46d
Author: Volker Lendecke <vl at samba.org>
Date: Sat Mar 13 14:19:23 2021 +0100
printing: Remove simple wrapper function pcap_printer_read_fn()
There's only one caller that was trivial to convert
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit b6b0c0cb7e034effd2370e9043140e2ac090c514
Author: Volker Lendecke <vl at samba.org>
Date: Tue Mar 9 12:54:49 2021 +0100
lib: Use FIONREAD in wait_for_read_send/recv
ENOTSOCK looks ugly in straces...
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit c58e9aa482cc650f99d040808ccfc780e1232210
Author: Volker Lendecke <vl at samba.org>
Date: Tue Mar 9 17:34:26 2021 +0100
tests: Fix a typo
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 6e41d1f3855ad89feacd02775a24ee9412804792
Author: Volker Lendecke <vl at samba.org>
Date: Sat Mar 13 14:10:33 2021 +0100
printing: Fix a typo
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 6fb317227dcdea29b2e5aef604050deda8d59240
Author: Volker Lendecke <vl at samba.org>
Date: Tue Feb 23 22:09:24 2021 +0100
winbind: Simplify winbindd_samr.c
talloc_stackframe() panics on failure
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit bdba1cd09b55b51b7d2a0d1456d330e420b6da1e
Author: Jeremy Allison <jra at samba.org>
Date: Fri Mar 12 12:10:49 2021 -0800
s3: VFS: Remove vfs_tru64acl.[c|h]
Support was discontinued for the entire Tru64 OS on 31 December 2012.
Signed-off-by: Jeremy Allison <jra at samba.org>
-----------------------------------------------------------------------
Summary of changes:
ctdb/common/pidfile.c | 2 +-
docs-xml/smbdotconf/base/netbiosaliases.xml | 1 -
lib/async_req/async_sock.c | 21 +-
lib/fuzzing/afl-fuzz-main.c | 16 +-
lib/fuzzing/fuzz_cli_credentials_parse_string.c | 6 +
lib/fuzzing/fuzz_dcerpc_parse_binding.c | 6 +
lib/fuzzing/fuzz_ldb_dn_explode.c | 6 +
lib/fuzzing/fuzz_ldb_ldif_read.c | 6 +
lib/fuzzing/fuzz_ldb_parse_binary_decode.c | 6 +
lib/fuzzing/fuzz_ldb_parse_control.c | 6 +
lib/fuzzing/fuzz_ndr_X.c | 6 +
lib/fuzzing/fuzz_nmblib_parse_packet.c | 6 +
lib/param/loadparm.c | 13 -
lib/param/s3_param.h | 1 -
lib/talloc/pytalloc.c | 22 +-
lib/talloc/pytalloc.h | 26 +-
lib/talloc/pytalloc_util.c | 26 +-
lib/util/pidfile.c | 80 ++--
lib/util/pidfile.h | 8 +-
librpc/rpc/dcesrv_auth.c | 19 +-
librpc/rpc/dcesrv_core.c | 11 +-
librpc/rpc/dcesrv_core.h | 19 +-
script/autobuild.py | 2 +-
source3/auth/proto.h | 10 +-
source3/auth/token_util.c | 4 +-
source3/client/client.c | 5 -
source3/include/nt_printing.h | 2 +-
source3/include/printing.h | 3 -
source3/include/proto.h | 4 -
source3/lib/netapi/netapi.c | 2 -
source3/lib/util.c | 36 +-
source3/lib/util_names.c | 131 ------
source3/modules/vfs_tru64acl.c | 505 ---------------------
source3/modules/vfs_tru64acl.h | 45 --
source3/modules/wscript_build | 7 -
source3/nmbd/nmbd.c | 4 +-
source3/nmbd/nmbd_mynames.c | 69 +++
source3/nmbd/nmbd_proto.h | 2 +
source3/param/loadparm_ctx.c | 1 -
source3/param/service.c | 3 +-
source3/printing/load.c | 21 +-
source3/printing/pcap.c | 20 -
source3/printing/pcap.h | 1 -
source3/printing/printer_list.c | 21 +
source3/printing/printer_list.h | 2 +
source3/printing/printing.c | 147 +-----
source3/printing/printspoolss.c | 1 +
source3/printing/queue_process.c | 4 +-
source3/printing/rap_jobid.c | 164 +++++++
.../{lib/version_test.c => printing/rap_jobid.h} | 19 +-
source3/rpc_client/cli_winreg_int.c | 4 +-
source3/rpc_server/netlogon/srv_netlog_nt.c | 108 ++++-
source3/rpc_server/rpc_ncacn_np.c | 4 +-
source3/rpc_server/rpc_server.c | 16 +-
source3/rpc_server/rpc_server.h | 16 +-
source3/rpc_server/rpc_sock_helper.c | 2 +-
source3/rpcclient/rpcclient.c | 249 ++++------
source3/rpcclient/rpcclient.h | 5 +
source3/script/tests/test_smb1_system_security.sh | 2 +-
source3/smbd/lanman.c | 1 +
source3/smbd/reply.c | 1 +
source3/smbd/server.c | 3 -
source3/smbd/server_reload.c | 4 +-
source3/torture/pdbtest.c | 1 -
source3/utils/net.c | 3 -
source3/utils/pdbedit.c | 3 -
source3/utils/smbpasswd.c | 8 -
source3/winbindd/winbindd.c | 5 -
source3/winbindd/winbindd_dual_ndr.c | 7 +-
source3/winbindd/winbindd_samr.c | 102 +----
source3/wscript_build | 1 +
source4/client/client.c | 2 -
source4/rpc_server/dcerpc_server.c | 16 +-
source4/rpc_server/service_rpc.c | 2 +-
source4/torture/libnetapi/libnetapi.c | 1 -
source4/torture/rpc/spoolss_notify.c | 2 +-
testsuite/unittests/test_sambafs_srv_pipe.c | 6 +-
77 files changed, 788 insertions(+), 1334 deletions(-)
delete mode 100644 source3/modules/vfs_tru64acl.c
delete mode 100644 source3/modules/vfs_tru64acl.h
create mode 100644 source3/printing/rap_jobid.c
copy source3/{lib/version_test.c => printing/rap_jobid.h} (68%)
Changeset truncated at 500 lines:
diff --git a/ctdb/common/pidfile.c b/ctdb/common/pidfile.c
index e78542d5f2f..47589f4b083 100644
--- a/ctdb/common/pidfile.c
+++ b/ctdb/common/pidfile.c
@@ -54,7 +54,7 @@ int pidfile_context_create(TALLOC_CTX *mem_ctx, const char *pidfile,
pid_ctx->pid = getpid();
- ret = pidfile_path_create(pid_ctx->pidfile, &fd);
+ ret = pidfile_path_create(pid_ctx->pidfile, &fd, NULL);
if (ret != 0) {
return ret;
}
diff --git a/docs-xml/smbdotconf/base/netbiosaliases.xml b/docs-xml/smbdotconf/base/netbiosaliases.xml
index 0304ab02d92..b9b66b16ef1 100644
--- a/docs-xml/smbdotconf/base/netbiosaliases.xml
+++ b/docs-xml/smbdotconf/base/netbiosaliases.xml
@@ -1,7 +1,6 @@
<samba:parameter name="netbios aliases"
context="G"
type="cmdlist"
- handler="handle_netbios_aliases"
xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
<description>
<para>This is a list of NetBIOS names that nmbd will
diff --git a/lib/async_req/async_sock.c b/lib/async_req/async_sock.c
index 3035aaaf623..ae1d3257f65 100644
--- a/lib/async_req/async_sock.c
+++ b/lib/async_req/async_sock.c
@@ -652,8 +652,7 @@ static void wait_for_read_done(struct tevent_context *ev,
private_data, struct tevent_req);
struct wait_for_read_state *state =
tevent_req_data(req, struct wait_for_read_state);
- ssize_t nread;
- char c;
+ int ret, available;
if ((flags & TEVENT_FD_READ) == 0) {
return;
@@ -664,26 +663,20 @@ static void wait_for_read_done(struct tevent_context *ev,
return;
}
- nread = recv(state->fd, &c, 1, MSG_PEEK);
+ ret = ioctl(state->fd, FIONREAD, &available);
- if (nread == 0) {
- tevent_req_error(req, EPIPE);
- return;
- }
-
- if ((nread == -1) && (errno == EINTR)) {
+ if ((ret == -1) && (errno == EINTR)) {
/* come back later */
return;
}
- if ((nread == -1) && (errno == ENOTSOCK)) {
- /* Ignore this specific error on pipes */
- tevent_req_done(req);
+ if (ret == -1) {
+ tevent_req_error(req, errno);
return;
}
- if (nread == -1) {
- tevent_req_error(req, errno);
+ if (available == 0) {
+ tevent_req_error(req, EPIPE);
return;
}
diff --git a/lib/fuzzing/afl-fuzz-main.c b/lib/fuzzing/afl-fuzz-main.c
index 9f677557867..e0a1d264fc4 100644
--- a/lib/fuzzing/afl-fuzz-main.c
+++ b/lib/fuzzing/afl-fuzz-main.c
@@ -26,11 +26,19 @@
int main(int argc, char *argv[]) {
int ret;
size_t size = 0;
+ int i;
+
+ ret = LLVMFuzzerInitialize(&argc, &argv);
+ if (ret != 0) {
+ printf("LLVMFuzzerInitialize returned %d\n", ret);
+ return ret;
+ }
+
+
#ifdef __AFL_LOOP
while (__AFL_LOOP(1000))
#else
- int i;
- for (i = 0; i < argc; i++) {
+ for (i = 1; i < argc; i++) {
uint8_t *buf = (uint8_t *)file_load(argv[i],
&size,
0,
@@ -38,10 +46,12 @@ int main(int argc, char *argv[]) {
ret = LLVMFuzzerTestOneInput(buf, size);
TALLOC_FREE(buf);
if (ret != 0) {
+ printf("LLVMFuzzerTestOneInput returned %d on argument %d\n",
+ ret, i);
return ret;
}
}
- if (i == 0)
+ if (i == 1)
#endif
{
uint8_t *buf = (uint8_t *)fd_load(0, &size, 0, NULL);
diff --git a/lib/fuzzing/fuzz_cli_credentials_parse_string.c b/lib/fuzzing/fuzz_cli_credentials_parse_string.c
index 3b88109298d..bac6ef27674 100644
--- a/lib/fuzzing/fuzz_cli_credentials_parse_string.c
+++ b/lib/fuzzing/fuzz_cli_credentials_parse_string.c
@@ -55,3 +55,9 @@ int LLVMFuzzerTestOneInput(uint8_t *input, size_t len)
talloc_free(mem_ctx);
return 0;
}
+
+
+int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ return 0;
+}
diff --git a/lib/fuzzing/fuzz_dcerpc_parse_binding.c b/lib/fuzzing/fuzz_dcerpc_parse_binding.c
index 61df0c0670e..b353066764b 100644
--- a/lib/fuzzing/fuzz_dcerpc_parse_binding.c
+++ b/lib/fuzzing/fuzz_dcerpc_parse_binding.c
@@ -68,3 +68,9 @@ int LLVMFuzzerTestOneInput(uint8_t *input, size_t len)
talloc_free(mem_ctx);
return 0;
}
+
+
+int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ return 0;
+}
diff --git a/lib/fuzzing/fuzz_ldb_dn_explode.c b/lib/fuzzing/fuzz_ldb_dn_explode.c
index 29747178e3e..f2b200b46a8 100644
--- a/lib/fuzzing/fuzz_ldb_dn_explode.c
+++ b/lib/fuzzing/fuzz_ldb_dn_explode.c
@@ -45,3 +45,9 @@ int LLVMFuzzerTestOneInput(uint8_t *input, size_t len)
TALLOC_FREE(ldb);
return 0;
}
+
+
+int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ return 0;
+}
diff --git a/lib/fuzzing/fuzz_ldb_ldif_read.c b/lib/fuzzing/fuzz_ldb_ldif_read.c
index 4eee1701836..0700a851fb5 100644
--- a/lib/fuzzing/fuzz_ldb_ldif_read.c
+++ b/lib/fuzzing/fuzz_ldb_ldif_read.c
@@ -48,3 +48,9 @@ int LLVMFuzzerTestOneInput(uint8_t *input, size_t len)
TALLOC_FREE(ldb);
return 0;
}
+
+
+int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ return 0;
+}
diff --git a/lib/fuzzing/fuzz_ldb_parse_binary_decode.c b/lib/fuzzing/fuzz_ldb_parse_binary_decode.c
index 6b79a34a027..734196e036d 100644
--- a/lib/fuzzing/fuzz_ldb_parse_binary_decode.c
+++ b/lib/fuzzing/fuzz_ldb_parse_binary_decode.c
@@ -47,3 +47,9 @@ int LLVMFuzzerTestOneInput(uint8_t *input, size_t len)
TALLOC_FREE(mem_ctx);
return 0;
}
+
+
+int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ return 0;
+}
diff --git a/lib/fuzzing/fuzz_ldb_parse_control.c b/lib/fuzzing/fuzz_ldb_parse_control.c
index 98af24a8000..c78222c3c85 100644
--- a/lib/fuzzing/fuzz_ldb_parse_control.c
+++ b/lib/fuzzing/fuzz_ldb_parse_control.c
@@ -47,3 +47,9 @@ int LLVMFuzzerTestOneInput(uint8_t *input, size_t len)
TALLOC_FREE(ldb);
return 0;
}
+
+
+int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ return 0;
+}
diff --git a/lib/fuzzing/fuzz_ndr_X.c b/lib/fuzzing/fuzz_ndr_X.c
index fc940f3011b..bedefba8553 100644
--- a/lib/fuzzing/fuzz_ndr_X.c
+++ b/lib/fuzzing/fuzz_ndr_X.c
@@ -329,3 +329,9 @@ int LLVMFuzzerTestOneInput(uint8_t *data, size_t size) {
return 0;
}
+
+
+int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ return 0;
+}
diff --git a/lib/fuzzing/fuzz_nmblib_parse_packet.c b/lib/fuzzing/fuzz_nmblib_parse_packet.c
index 7b35abe9f97..85dd823e51c 100644
--- a/lib/fuzzing/fuzz_nmblib_parse_packet.c
+++ b/lib/fuzzing/fuzz_nmblib_parse_packet.c
@@ -54,3 +54,9 @@ int LLVMFuzzerTestOneInput(uint8_t *input, size_t len)
}
return 0;
}
+
+
+int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ return 0;
+}
diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c
index 0c4c3d0f555..6f0eeb7edf6 100644
--- a/lib/param/loadparm.c
+++ b/lib/param/loadparm.c
@@ -1290,19 +1290,6 @@ bool handle_ldap_debug_level(struct loadparm_context *lp_ctx, struct loadparm_se
return true;
}
-bool handle_netbios_aliases(struct loadparm_context *lp_ctx, struct loadparm_service *service,
- const char *pszParmValue, char **ptr)
-{
- TALLOC_FREE(lp_ctx->globals->netbios_aliases);
- lp_ctx->globals->netbios_aliases = str_list_make_v3_const(lp_ctx->globals->ctx,
- pszParmValue, NULL);
-
- if (lp_ctx->s3_fns) {
- return lp_ctx->s3_fns->set_netbios_aliases(lp_ctx->globals->netbios_aliases);
- }
- return true;
-}
-
/*
* idmap related parameters
*/
diff --git a/lib/param/s3_param.h b/lib/param/s3_param.h
index 7bbadfd196a..f9ed7c3e2d7 100644
--- a/lib/param/s3_param.h
+++ b/lib/param/s3_param.h
@@ -14,7 +14,6 @@ struct loadparm_s3_helpers
bool (*lp_include)(struct loadparm_context*, struct loadparm_service *,
const char *, char **);
void (*init_ldap_debugging)(void);
- bool (*set_netbios_aliases)(const char **);
bool (*do_section)(const char *pszSectionName, void *userdata);
struct loadparm_global *globals;
unsigned int *flags;
diff --git a/lib/talloc/pytalloc.c b/lib/talloc/pytalloc.c
index cc5a6a812ea..15e4232f0c8 100644
--- a/lib/talloc/pytalloc.c
+++ b/lib/talloc/pytalloc.c
@@ -3,18 +3,22 @@
Python Talloc Module
Copyright (C) Jelmer Vernooij <jelmer at samba.org> 2010-2011
- 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.
+ ** NOTE! The following LGPL license applies to the talloc
+ ** library. This does NOT imply that all of Samba is released
+ ** under the LGPL
- This program is distributed in the hope that it will be useful,
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 3 of the License, or (at your option) any later version.
+
+ This library 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.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser 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/>.
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
#include <Python.h>
diff --git a/lib/talloc/pytalloc.h b/lib/talloc/pytalloc.h
index 9aeb121eb29..c1f9b446e16 100644
--- a/lib/talloc/pytalloc.h
+++ b/lib/talloc/pytalloc.h
@@ -3,18 +3,22 @@
Samba utility functions
Copyright (C) Jelmer Vernooij <jelmer at samba.org> 2008
- 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,
+ ** NOTE! The following LGPL license applies to the talloc
+ ** library. This does NOT imply that all of Samba is released
+ ** under the LGPL
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 3 of the License, or (at your option) any later version.
+
+ This library 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/>.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _PYTALLOC_H_
diff --git a/lib/talloc/pytalloc_util.c b/lib/talloc/pytalloc_util.c
index c580d46f858..1b7cfdda6e7 100644
--- a/lib/talloc/pytalloc_util.c
+++ b/lib/talloc/pytalloc_util.c
@@ -3,18 +3,22 @@
Python/Talloc glue
Copyright (C) Jelmer Vernooij <jelmer at samba.org> 2008
- 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,
+ ** NOTE! The following LGPL license applies to the talloc
+ ** library. This does NOT imply that all of Samba is released
+ ** under the LGPL
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 3 of the License, or (at your option) any later version.
+
+ This library 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/>.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
#include <Python.h>
diff --git a/lib/util/pidfile.c b/lib/util/pidfile.c
index b7daa089223..4f4e5e9782c 100644
--- a/lib/util/pidfile.c
+++ b/lib/util/pidfile.c
@@ -27,16 +27,14 @@
#include "lib/util/pidfile.h"
-int pidfile_path_create(const char *path, int *outfd)
+int pidfile_path_create(const char *path, int *pfd, pid_t *existing_pid)
{
struct flock lck;
char tmp[64] = { 0 };
- pid_t pid;
int fd, ret = 0;
int len;
ssize_t nwritten;
-
- pid = getpid();
+ bool retried = false;
fd = open(path, O_CREAT|O_WRONLY|O_NONBLOCK, 0644);
if (fd == -1) {
@@ -44,10 +42,11 @@ int pidfile_path_create(const char *path, int *outfd)
}
if (! set_close_on_exec(fd)) {
- close(fd);
- return EIO;
+ ret = errno;
+ goto fail;
}
+retry:
lck = (struct flock) {
.l_type = F_WRLCK,
.l_whence = SEEK_SET,
@@ -59,25 +58,41 @@ int pidfile_path_create(const char *path, int *outfd)
if (ret != 0) {
ret = errno;
- close(fd);
- return ret;
+
+ if ((ret == EACCES) || (ret == EAGAIN)) {
+ do {
+ ret = fcntl(fd, F_GETLK, &lck);
+ } while ((ret == -1) && (errno == EINTR));
+
+ if (ret == -1) {
+ ret = errno;
+ goto fail;
+ }
+
+ if (lck.l_type == F_UNLCK) {
+ if (!retried) {
+ /* Lock holder died, retry once */
+ retried = true;
+ goto retry;
+ }
+ /* Something badly wrong */
+ ret = EIO;
+ goto fail;
+ }
+
+ if (existing_pid != NULL) {
+ *existing_pid = lck.l_pid;
+ }
+ return EAGAIN;
+ }
+ goto fail;
}
/*
* PID file is locked by us so from here on we should unlink
* on failure
*/
-
- do {
- ret = ftruncate(fd, 0);
- } while ((ret == -1) && (errno == EINTR));
-
- if (ret == -1) {
- ret = EIO;
- goto fail_unlink;
- }
-
- len = snprintf(tmp, sizeof(tmp), "%u\n", pid);
+ len = snprintf(tmp, sizeof(tmp), "%u\n", getpid());
if (len < 0) {
ret = errno;
goto fail_unlink;
@@ -92,17 +107,25 @@ int pidfile_path_create(const char *path, int *outfd)
} while ((nwritten == -1) && (errno == EINTR));
if ((nwritten == -1) || (nwritten != len)) {
- ret = EIO;
+ ret = errno;
goto fail_unlink;
}
- if (outfd != NULL) {
- *outfd = fd;
+ do {
+ ret = ftruncate(fd, len);
+ } while ((ret == -1) && (errno == EINTR));
+
+ if (ret == -1) {
+ ret = errno;
+ goto fail_unlink;
}
+
+ *pfd = fd;
return 0;
fail_unlink:
unlink(path);
+fail:
close(fd);
return ret;
}
@@ -185,24 +208,17 @@ void pidfile_create(const char *piddir, const char *name)
size_t len = strlen(piddir) + strlen(name) + 6;
char pidFile[len];
pid_t pid;
- int ret;
+ int ret, fd;
--
Samba Shared Repository
More information about the samba-cvs
mailing list