[libvirt] [PATCH] Fix potential false-positive OOM error reporting

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

 



If no matching device was found (cap == NULL) then no strdup() call
was made and *wwnn and *wwpn are untouched. Checking them for NULL
in this situation may result in reporting an false-positive OOM error
because *wwnn and *wwpn may be initialized to NULL by the caller.

Only check *wwnn and *wwpn for NULL if a matching device was found
(cap != NULL) and thus strdup() was called.

* src/conf/node_device_conf.c: only report an OOM error if there
  really is one
---
 src/conf/node_device_conf.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
index 77f7be3..c2c5a44 100644
--- a/src/conf/node_device_conf.c
+++ b/src/conf/node_device_conf.c
@@ -1243,9 +1243,7 @@ virNodeDeviceGetWWNs(virConnectPtr conn,
         virNodeDeviceReportError(conn, VIR_ERR_NO_SUPPORT,
                                  "%s", _("Device is not a fibre channel HBA"));
         ret = -1;
-    }
-
-    if (*wwnn == NULL || *wwpn == NULL) {
+    } else if (*wwnn == NULL || *wwpn == NULL) {
         /* Free the other one, if allocated... */
         VIR_FREE(wwnn);
         VIR_FREE(wwpn);
-- 
1.6.0.4

--
Libvir-list mailing list
Libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]