mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
xl: fixes for do_daemonize
Fix usage of CHK_ERRNO in do_daemonize and also remove the usage of a
bogus for(;;).
Coverity-ID: 1130516 and 1130520
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>
(cherry picked from commit ed8c9047f6)
Conflicts:
tools/libxl/xl_cmdimpl.c
This commit is contained in:
1 parent
8f1bd27fcd
commit
c393ff09ad
1 file changed
+7
-8
@@ -2079,14 +2079,14 @@ start:
|
||||
if (child1) {
|
||||
printf("Daemon running with PID %d\n", child1);
|
||||
|
||||
for (;;) {
|
||||
got_child = xl_waitpid(child_waitdaemon, &status, 0);
|
||||
if (got_child == child1) break;
|
||||
got_child = xl_waitpid(child_waitdaemon, &status, 0);
|
||||
if (got_child != child1) {
|
||||
assert(got_child == -1);
|
||||
perror("failed to wait for daemonizing child");
|
||||
LOG("failed to wait for daemonizing child: %s", strerror(errno));
|
||||
ret = ERROR_FAIL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (status) {
|
||||
libxl_report_child_exitstatus(ctx, XTL_ERROR,
|
||||
"daemonizing child", child1, status);
|
||||
@@ -2109,17 +2109,16 @@ start:
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
CHK_ERRNO(( logfile = open(fullname, O_WRONLY|O_CREAT|O_APPEND,
|
||||
0644) )<0);
|
||||
CHK_ERRNO(logfile = open(fullname, O_WRONLY|O_CREAT|O_APPEND, 0644));
|
||||
free(fullname);
|
||||
free(name);
|
||||
|
||||
CHK_ERRNO(( nullfd = open("/dev/null", O_RDONLY) )<0);
|
||||
CHK_ERRNO(nullfd = open("/dev/null", O_RDONLY));
|
||||
dup2(nullfd, 0);
|
||||
dup2(logfile, 1);
|
||||
dup2(logfile, 2);
|
||||
|
||||
CHK_ERRNO(daemon(0, 1) < 0);
|
||||
CHK_ERRNO(daemon(0, 1));
|
||||
need_daemon = 0;
|
||||
}
|
||||
LOG("Waiting for domain %s (domid %d) to die [pid %ld]",
|
||||
|
||||