Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nginx/nginx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--auto/os/linux5
-rw-r--r--src/os/unix/ngx_linux_config.h2
-rw-r--r--src/os/unix/ngx_process_cycle.c2
3 files changed, 5 insertions, 4 deletions
diff --git a/auto/os/linux b/auto/os/linux
index e4aa0e549..135280f99 100644
--- a/auto/os/linux
+++ b/auto/os/linux
@@ -174,7 +174,8 @@ ngx_feature_test="if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0) == -1) return 1"
ngx_feature="capabilities"
ngx_feature_name="NGX_HAVE_CAPABILITIES"
ngx_feature_run=no
-ngx_feature_incs="#include <sys/capability.h>"
+ngx_feature_incs="#include <linux/capability.h>
+ #include <sys/syscall.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="struct __user_cap_data_struct data;
@@ -184,7 +185,7 @@ ngx_feature_test="struct __user_cap_data_struct data;
data.effective = CAP_TO_MASK(CAP_NET_RAW);
data.permitted = 0;
- (void) capset(&header, &data)"
+ (void) SYS_capset"
. auto/feature
diff --git a/src/os/unix/ngx_linux_config.h b/src/os/unix/ngx_linux_config.h
index b22ea4378..3036caebf 100644
--- a/src/os/unix/ngx_linux_config.h
+++ b/src/os/unix/ngx_linux_config.h
@@ -100,7 +100,7 @@ typedef struct iocb ngx_aiocb_t;
#if (NGX_HAVE_CAPABILITIES)
-#include <sys/capability.h>
+#include <linux/capability.h>
#endif
diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c
index 40654b3a2..9b0e0421e 100644
--- a/src/os/unix/ngx_process_cycle.c
+++ b/src/os/unix/ngx_process_cycle.c
@@ -869,7 +869,7 @@ ngx_worker_process_init(ngx_cycle_t *cycle, ngx_int_t worker)
data.effective = CAP_TO_MASK(CAP_NET_RAW);
data.permitted = data.effective;
- if (capset(&header, &data) == -1) {
+ if (syscall(SYS_capset, &header, &data) == -1) {
ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno,
"capset() failed");
/* fatal */