commit cc28872545635bfae01e9afbb1efb5370e8fa300
parent 7200f4346ae5b7d3022f972d6b743e2de7b0aad4
Author: Francesco Saccone <francesco@francescosaccone.com>
Date: Mon, 31 Mar 2025 15:45:17 +0200
feat: drop privileges before reading client request
Signed-off-by: Francesco Saccone <francesco@francescosaccone.com>
Diffstat:
1 file changed, 11 insertions(+), 0 deletions(-)
diff --git a/main.c b/main.c
@@ -3,6 +3,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
#include "socket.h"
#include "utils.h"
@@ -115,6 +116,16 @@ main(int argc, char *argv[]) {
continue;
}
+ if (setgid(group->gr_gid) == -1) {
+ print_error("error: could not drop privileges to given group");
+ return 1;
+ }
+
+ if (setuid(user->pw_uid) == -1) {
+ print_error("error: could not drop privileges to given user");
+ return 1;
+ }
+
if (read_client_request(client_socket_fd,
buffer,
buffer_size) == -1) {