mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-03 03:25:20 +00:00
testutils: Resolve Coverity issues
Recent changes uncovered a NEGATIVE_RETURNS in the return from sysconf() when processing a for loop in virtTestCaptureProgramExecChild() in testutils.c Code review uncovered 3 other code paths with the same condition that weren't found by Covirity, so fixed those as well.
This commit is contained in:
parent
0776809659
commit
8283ef9ea2
@ -247,6 +247,11 @@ static int lxcContainerSetStdio(int control, int ttyfd, int handshakefd)
|
||||
/* Just in case someone forget to set FD_CLOEXEC, explicitly
|
||||
* close all FDs before executing the container */
|
||||
open_max = sysconf(_SC_OPEN_MAX);
|
||||
if (open_max < 0) {
|
||||
virReportSystemError(errno, "%s",
|
||||
_("sysconf(_SC_OPEN_MAX) failed"));
|
||||
goto cleanup;
|
||||
}
|
||||
for (fd = 0; fd < open_max; fd++)
|
||||
if (fd != ttyfd && fd != control && fd != handshakefd) {
|
||||
int tmpfd = fd;
|
||||
|
@ -511,6 +511,11 @@ virExec(virCommandPtr cmd)
|
||||
}
|
||||
|
||||
openmax = sysconf(_SC_OPEN_MAX);
|
||||
if (openmax < 0) {
|
||||
virReportSystemError(errno, "%s",
|
||||
_("sysconf(_SC_OPEN_MAX) failed"));
|
||||
goto fork_error;
|
||||
}
|
||||
for (fd = 3; fd < openmax; fd++) {
|
||||
if (fd == childin || fd == childout || fd == childerr)
|
||||
continue;
|
||||
|
@ -58,6 +58,7 @@ static int envsort(const void *a, const void *b) {
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
size_t i, n;
|
||||
int open_max;
|
||||
char **origenv;
|
||||
char **newenv;
|
||||
char *cwd;
|
||||
@ -96,7 +97,10 @@ int main(int argc, char **argv) {
|
||||
fprintf(log, "ENV:%s\n", newenv[i]);
|
||||
}
|
||||
|
||||
for (i = 0; i < sysconf(_SC_OPEN_MAX); i++) {
|
||||
open_max = sysconf(_SC_OPEN_MAX);
|
||||
if (open_max < 0)
|
||||
return EXIT_FAILURE;
|
||||
for (i = 0; i < open_max; i++) {
|
||||
int f;
|
||||
int closed;
|
||||
if (i == fileno(log))
|
||||
|
@ -281,6 +281,9 @@ void virtTestCaptureProgramExecChild(const char *const argv[],
|
||||
goto cleanup;
|
||||
|
||||
open_max = sysconf(_SC_OPEN_MAX);
|
||||
if (open_max < 0)
|
||||
goto cleanup;
|
||||
|
||||
for (i = 0; i < open_max; i++) {
|
||||
if (i != stdinfd &&
|
||||
i != pipefd) {
|
||||
|
Loading…
Reference in New Issue
Block a user