[libvirt] Pushed qemuDomainRestore fix

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

 



FYI, I just pushed this fix (with blessing from DV):

commit d62f4c36c2c28b96952143247a1360e8c18f64c7
Author: Chris Lalancette <clalance@xxxxxxxxxx>
Date:   Tue Mar 23 09:11:29 2010 -0400

    Don't use virFileReadLimFD in qemuDomainRestore.
    
    virFileReadLimFD is a poor fit for reading the header
    of the restore file.  The problem is that virFileReadLimFD
    returns an error when there is more data after the amount
    you ask to read, but that is *expected* in this case.
    
    This patch is essentially a revert of
    1a4d5c9543641c444dccd682f6256ee3faf22a80, but I don't think
    that commit does what it says anyway.  It purports to prevent
    an unwarranted OOM error, but since virFileReadLimFD will
    allocate memory up to the maximum anyway, the upper limit
    on the total amount of memory allocated is the same for either
    the old version or the new version.  Since the old saferead
    actually works and virFileReadLimFD does not, revert to
    using saferead.
    
    Signed-off-by: Chris Lalancette <clalance@xxxxxxxxxx>

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 4291bc7..70d2781 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -5547,7 +5547,12 @@ static int qemudDomainRestore(virConnectPtr conn,
         goto cleanup;
     }
 
-    if (virFileReadLimFD(fd, header.xml_len, &xml) != header.xml_len) {
+    if (VIR_ALLOC_N(xml, header.xml_len) < 0) {
+        virReportOOMError();
+        goto cleanup;
+    }
+
+    if (saferead(fd, xml, header.xml_len) != header.xml_len) {
         qemuReportError(VIR_ERR_OPERATION_FAILED,
                         "%s", _("failed to read XML"));
         goto cleanup;

-- 
Chris Lalancette

--
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]