summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2010-01-26 16:51:57 -0800
committerJeremy Allison <jra@samba.org>2010-01-26 16:51:57 -0800
commit899bd0005f56dcc1e95c3988d41ab3f628bb15db (patch)
tree633dfaaf9f240a6571c49fc4da2fc7a2f0e5def9 /source3/smbd
parent2dd301e5cd6ff97943c4bf9c7cd9b820d6193b45 (diff)
downloadsamba-899bd0005f56dcc1e95c3988d41ab3f628bb15db.tar.gz
samba-899bd0005f56dcc1e95c3988d41ab3f628bb15db.tar.bz2
samba-899bd0005f56dcc1e95c3988d41ab3f628bb15db.zip
Fix bug #7067 - Linux asynchronous IO (aio) can cause smbd to fail to respond to a read or write.
Only works on Linux kernels 2.6.26 and above. Grants CAP_KILL capability to allow Linux threads under different euids to send signals to each other. Jeremy.
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/server.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index 09ad8d8ea5..fb0efd2ae5 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -1047,6 +1047,14 @@ extern void build_options(bool screen);
gain_root_privilege();
gain_root_group_privilege();
+ /*
+ * Ensure we have CAP_KILL capability set on Linux,
+ * where we need this to communicate with threads.
+ * This is inherited by new threads, but not by new
+ * processes across exec().
+ */
+ set_effective_capability(KILL_CAPABILITY);
+
fault_setup((void (*)(void *))exit_server_fault);
dump_core_setup("smbd");