[PATCH] esx: Fix floppy.fileName handling in the vmx file parser

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

 



The vmx file parsing code was reporting errors when parsing floppy.fileName
entries if the filename didn't end in .flp. There is no such restriction in
ESX; even using the GUI to configure floppy filenames you can specify any
arbitrary file with any extension.

Fix by changing the vmx parsing code so that it uses the floppy.fileType
value to determine whether floppy.fileName refers to a block device or a
regular file.
---
 src/vmx/vmx.c | 26 +++++---------------------
 1 file changed, 5 insertions(+), 21 deletions(-)

diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c
index 38b7cc0..ffe7e7a 100644
--- a/src/vmx/vmx.c
+++ b/src/vmx/vmx.c
@@ -2250,27 +2250,18 @@ virVMXParseDisk(virVMXContext *ctx, virDomainXMLOptionPtr xmlopt, virConfPtr con
             goto cleanup;
         }
     } else if (device == VIR_DOMAIN_DISK_DEVICE_FLOPPY) {
-        if (virFileHasSuffix(fileName, ".flp")) {
-            if (fileType != NULL) {
-                if (STRCASENEQ(fileType, "file")) {
-                    virReportError(VIR_ERR_INTERNAL_ERROR,
-                                   _("Expecting VMX entry '%s' to be 'file' but "
-                                     "found '%s'"), fileType_name, fileType);
-                    goto cleanup;
-                }
-            }
+        if (fileType != NULL && STRCASEEQ(fileType, "device")) {
+            (*def)->type = VIR_DOMAIN_DISK_TYPE_BLOCK;
+            (*def)->src = "">

+            fileName = NULL;
+        } else if (fileType != NULL && STRCASEEQ(fileType, "file")) {
             (*def)->type = VIR_DOMAIN_DISK_TYPE_FILE;
             (*def)->src = "" ctx->opaque);

             if ((*def)->src == NULL) {
                 goto cleanup;
             }
-        } else if (fileType != NULL && STRCASEEQ(fileType, "device")) {
-            (*def)->type = VIR_DOMAIN_DISK_TYPE_BLOCK;
-            (*def)->src = "">
-
-            fileName = NULL;
         } else {
             virReportError(VIR_ERR_INTERNAL_ERROR,
                            _("Invalid or not yet handled value '%s' "
@@ -3538,13 +3529,6 @@ virVMXFormatFloppy(virVMXContext *ctx, virDomainDiskDefPtr def,
         virBufferAsprintf(buffer, "floppy%d.fileType = \"file\"\n", unit);

         if (def->src != NULL) {
-            if (! virFileHasSuffix(def->src, ".flp")) {
-                virReportError(VIR_ERR_INTERNAL_ERROR,
-                               _("Image file for floppy '%s' has unsupported "
-                                 "suffix, expecting '.flp'"), def->dst);
-                return -1;
-            }
-
             fileName = ctx->formatFileName(def->src, ctx->opaque);

             if (fileName == NULL) {
-- 
1.8.1.2

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