Skip to content

Commit 4272ea0

Browse files
authored
Merge pull request #1322 from msfuko/1.3.0/fchdir_close
Reset chroot file descriptor after closed
2 parents c2a737a + 4cfb925 commit 4272ea0

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

src/OVAL/probes/probe/worker.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1083,24 +1083,30 @@ SEXP_t *probe_worker(probe_t *probe, SEAP_msg_t *msg_in, int *ret)
10831083
dE("fchdir failed: %s", strerror(errno));
10841084
close(probe->real_root_fd);
10851085
close(probe->real_cwd_fd);
1086+
probe->real_root_fd = -1;
1087+
probe->real_cwd_fd = -1;
10861088
SEXP_free(probe_out);
10871089
return NULL;
10881090
}
10891091
close(probe->real_root_fd);
1092+
probe->real_root_fd = -1;
10901093
dI("Leaving chroot mode");
10911094
if (chroot(".") == -1) {
10921095
dE("chroot(\".\") failed: %s", strerror(errno));
10931096
close(probe->real_cwd_fd);
1097+
probe->real_cwd_fd = -1;
10941098
SEXP_free(probe_out);
10951099
return NULL;
10961100
}
10971101
if (fchdir(probe->real_cwd_fd) != 0) {
10981102
dE("fchdir failed: %s", strerror(errno));
10991103
close(probe->real_cwd_fd);
1104+
probe->real_cwd_fd = -1;
11001105
SEXP_free(probe_out);
11011106
return NULL;
11021107
}
11031108
close(probe->real_cwd_fd);
1109+
probe->real_cwd_fd = -1;
11041110
}
11051111
#endif
11061112

0 commit comments

Comments
 (0)