Browse Source

cgroups.plugin: call `setresuid` before spawn server init (#18694)

Ilya Mashchenko 5 months ago
parent
commit
58b6bfb828
1 changed files with 4 additions and 3 deletions
  1. 4 3
      src/collectors/cgroups.plugin/cgroup-network.c

+ 4 - 3
src/collectors/cgroups.plugin/cgroup-network.c

@@ -522,9 +522,6 @@ cleanup:
 
 #define CGROUP_NETWORK_INTERFACE_MAX_LINE 2048
 void call_the_helper(pid_t pid, const char *cgroup) {
-    if(setresuid(0, 0, 0) == -1)
-        collector_error("setresuid(0, 0, 0) failed.");
-
     char command[CGROUP_NETWORK_INTERFACE_MAX_LINE + 1];
     if(cgroup)
         snprintfz(command, CGROUP_NETWORK_INTERFACE_MAX_LINE, "exec " PLUGINS_DIR "/cgroup-network-helper.sh --cgroup '%s'", cgroup);
@@ -675,6 +672,10 @@ int main(int argc, const char **argv) {
     pid_t pid = 0;
 
     clocks_init();
+
+    if (setresuid(0, 0, 0) == -1)
+        collector_error("setresuid(0, 0, 0) failed.");
+
     nd_log_initialize_for_external_plugins("cgroup-network");
     netdata_main_spawn_server_init(NULL, argc, argv);