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

Re: [libvirt] [PATCH] virAsprintf: correctly check return value



On 07/18/13 12:37, Ján Tomko wrote:
When virAsprintf was changed from a function to a macro
reporting OOM error in dc6f2da, it was documented as returning
0 on success. This is incorrect, it returns the number of bytes
written as asprintf does.

Some of the functions were converted to use virAsprintf's return
value directly, changing the return value on success from 0 to >= 0.

For most of these, this is not a problem, but the change in
virPCIDriverDir breaks PCI passthrough.

The return value check in virhashtest pre-dates virAsprintf OOM
conversion.

vmwareMakePath seems to be unused.
---
  src/util/virstring.h     | 10 ++++++----
  src/util/virpci.c        | 26 ++++++++++++++++++--------
  tests/virhashtest.c      |  2 +-

  src/qemu/qemu_command.c  | 13 ++++++++++---
  src/qemu/qemu_process.c  |  6 ++++--
  src/util/virnetdev.c     | 10 +++++++---
  src/util/virrandom.c     |  6 ++++--
  src/vmware/vmware_conf.c | 15 ++++++++++++---
  8 files changed, 62 insertions(+), 26 deletions(-)



  /**
diff --git a/src/util/virrandom.c b/src/util/virrandom.c
index e2d18f8..c233732 100644
--- a/src/util/virrandom.c
+++ b/src/util/virrandom.c
@@ -178,6 +178,8 @@ virRandomGenerateWWN(char **wwn,
          return -1;
      }

-    return virAsprintf(wwn, "5" "%s%09llx", oui,

Hmmm, interresting construction of strings.

-                       (unsigned long long)virRandomBits(36));
+    if (virAsprintf(wwn, "5" "%s%09llx", oui,
+                    (unsigned long long)virRandomBits(36)) < 0)
+        return -1;
+    return 0;
  }

ACK.

Peter


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