diff --git a/main/asterisk.c b/main/asterisk.c index d1e930f1f5901215bf55c1cb10bad6783918f45c..d86e66a5b2a0863f08e95b1e284f6e7327bc5f32 100644 --- a/main/asterisk.c +++ b/main/asterisk.c @@ -2521,7 +2521,6 @@ int main(int argc, char *argv[]) if (!is_child_of_nonroot && runuser) { #ifdef HAVE_CAP - cap_t cap; int has_cap = 1; #endif /* HAVE_CAP */ struct passwd *pw; @@ -2533,7 +2532,7 @@ int main(int argc, char *argv[]) #ifdef HAVE_CAP if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0)) { ast_log(LOG_WARNING, "Unable to keep capabilities.\n"); - has_cap = 0; + has_cap = 0; } #endif /* HAVE_CAP */ if (!rungroup) { @@ -2555,12 +2554,15 @@ int main(int argc, char *argv[]) ast_verbose("Running as user '%s'\n", runuser); #ifdef HAVE_CAP if (has_cap) { + cap_t cap; + cap = cap_from_text("cap_net_admin=ep"); - if (cap_set_proc(cap)) { + + if (cap_set_proc(cap)) ast_log(LOG_WARNING, "Unable to install capabilities.\n"); - } else if (cap_free(cap)) { + + if (cap_free(cap)) ast_log(LOG_WARNING, "Unable to drop capabilities.\n"); - } } #endif /* HAVE_CAP */ }