diff options
author | Jeremy Allison <jra@samba.org> | 2010-01-26 16:51:57 -0800 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2010-01-26 16:51:57 -0800 |
commit | 899bd0005f56dcc1e95c3988d41ab3f628bb15db (patch) | |
tree | 633dfaaf9f240a6571c49fc4da2fc7a2f0e5def9 /source3/smbd | |
parent | 2dd301e5cd6ff97943c4bf9c7cd9b820d6193b45 (diff) | |
download | samba-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.c | 8 |
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"); |