Fix runas: don't attempt close negative fd
[lttng-tools.git] / src / common / runas.c
index 317f687961d014f09b4021c644a75af94b10e941..0a588482644f5138b138edfc39ab3002ebb48aeb 100644 (file)
@@ -402,11 +402,14 @@ int send_fd_to_master(struct run_as_worker *worker, enum run_as_cmd cmd, int fd)
                ret = -1;
        }
 
+       if (fd < 0) {
+               goto end;
+       }
        ret_close = close(fd);
        if (ret_close < 0) {
                PERROR("close");
        }
-
+end:
        return ret;
 }
 
@@ -466,6 +469,9 @@ int cleanup_received_fd(enum run_as_cmd cmd, int fd)
                return 0;
        }
 
+       if (fd < 0) {
+               return 0;
+       }
        ret = close(fd);
        if (ret < 0) {
                PERROR("close error");
@@ -922,6 +928,9 @@ int run_as_extract_elf_symbol_offset(int fd, const char* function,
        struct run_as_data data;
        struct run_as_ret ret;
 
+       memset(&data, 0, sizeof(data));
+       memset(&ret, 0, sizeof(ret));
+
        DBG3("extract_elf_symbol_offset() on fd=%d and function=%s "
                "with for uid %d and gid %d", fd, function, (int) uid, (int) gid);
 
@@ -951,6 +960,9 @@ int run_as_extract_sdt_probe_offsets(int fd, const char* provider_name,
        struct run_as_data data;
        struct run_as_ret ret;
 
+       memset(&data, 0, sizeof(data));
+       memset(&ret, 0, sizeof(ret));
+
        DBG3("extract_sdt_probe_offsets() on fd=%d, probe_name=%s and "
                "provider_name=%s with for uid %d and gid %d", fd, probe_name,
                provider_name, (int) uid, (int) gid);
This page took 0.024158 seconds and 4 git commands to generate.