tpws : dropcaps

This commit is contained in:
bolvan 2019-05-19 15:37:05 +03:00
parent 352f93ced2
commit 8b9d7f56d3
10 changed files with 26 additions and 4 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -12,7 +12,7 @@ define Package/tpws
CATEGORY:=Network CATEGORY:=Network
TITLE:=tpws TITLE:=tpws
SUBMENU:=Zapret SUBMENU:=Zapret
DEPENDS:=+zlib DEPENDS:=+zlib +libcap
endef endef
define Build/Prepare define Build/Prepare

View File

@ -23,6 +23,7 @@
#include <getopt.h> #include <getopt.h>
#include <pwd.h> #include <pwd.h>
#include <signal.h> #include <signal.h>
#include <sys/capability.h>
#include "tpws.h" #include "tpws.h"
#include "tpws_conn.h" #include "tpws_conn.h"
@ -789,6 +790,26 @@ void daemonize()
/* stderror */ /* stderror */
} }
bool dropcaps()
{
cap_t capabilities;
capabilities = cap_init();
if (cap_clear(capabilities))
{
perror("cap_init");
return false;
}
if (cap_set_proc(capabilities))
{
perror("cap_set_proc");
cap_free(capabilities);
return false;
}
cap_free(capabilities);
return true;
}
bool droproot() bool droproot()
{ {
if (params.uid || params.gid) if (params.uid || params.gid)
@ -804,9 +825,10 @@ bool droproot()
return false; return false;
} }
} }
return true; return dropcaps();
} }
bool writepid(const char *filename) bool writepid(const char *filename)
{ {
FILE *F; FILE *F;