[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen stable-4.2] xl: fixes for do_daemonize



commit c47753c44057deb9cb588f3ed03d4d6397f007ff
Author:     Roger Pau Monne <roger.pau@xxxxxxxxxx>
AuthorDate: Fri Nov 22 12:54:09 2013 +0100
Commit:     Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
CommitDate: Thu Jan 9 12:40:40 2014 +0000

    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@xxxxxxxxxx>
    Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
    Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
    Cc: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
    (cherry picked from commit ed8c9047f6fc6d28fc27d37576ec8c8c1be68efe)
    
    Conflicts:
        tools/libxl/xl_cmdimpl.c
    (cherry picked from commit c393ff09ade45d1a2a8f1c12eac5eab4d38947a3)
---
 tools/libxl/xl_cmdimpl.c |   15 +++++++--------
 1 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
index 0a576a6..4af5812 100644
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -1963,14 +1963,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);
@@ -1993,17 +1993,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]",
--
generated by git-patchbot for /home/xen/git/xen.git#stable-4.2

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.