]> xenbits.xensource.com Git - libvirt.git/commitdiff
network: fix return value of hostsFileWrite
authorLaine Stump <laine@laine.org>
Wed, 27 Apr 2011 18:11:14 +0000 (14:11 -0400)
committerLaine Stump <laine@laine.org>
Thu, 28 Apr 2011 14:44:57 +0000 (10:44 -0400)
The lone caller to hostsFileWrite (and the callers for at least 3
levels up the return stack) assume that the return value will be < 0
on failure. However, hostsFileWrite returns 0 on success, and a
positive errno on failure. This patch changes hostsFileWrite to return
-errno on failure.

src/util/dnsmasq.c

index be230e1356055cf7fa08642cfeefdaa4b08c4c7a..2ba9355923c96c8fa30409a254e172dc5a80391e 100644 (file)
@@ -159,19 +159,19 @@ hostsfileWrite(const char *path,
         return rc;
 
     if (virAsprintf(&tmp, "%s.new", path) < 0)
-        return ENOMEM;
+        return -ENOMEM;
 
     if (!(f = fopen(tmp, "w"))) {
         istmp = false;
         if (!(f = fopen(path, "w"))) {
-            rc = errno;
+            rc = -errno;
             goto cleanup;
         }
     }
 
     for (i = 0; i < nhosts; i++) {
         if (fputs(hosts[i].host, f) == EOF || fputc('\n', f) == EOF) {
-            rc = errno;
+            rc = -errno;
             VIR_FORCE_FCLOSE(f);
 
             if (istmp)
@@ -182,19 +182,19 @@ hostsfileWrite(const char *path,
     }
 
     if (VIR_FCLOSE(f) == EOF) {
-        rc = errno;
+        rc = -errno;
         goto cleanup;
     }
 
     if (istmp) {
         if (rename(tmp, path) < 0) {
-            rc = errno;
+            rc = -errno;
             unlink(tmp);
             goto cleanup;
         }
 
         if (unlink(tmp) < 0) {
-            rc = errno;
+            rc = -errno;
             goto cleanup;
         }
     }