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

Re: [libvirt] [PATCH V2] conf: report error in virCPUDefParseXML



On Thu, Sep 25, 2014 at 07:28:33PM +0800, Jincheng Miao wrote:
When detected invalid 'memAccess', virCPUDefParseXML should report error.

Resolves https://bugzilla.redhat.com/show_bug.cgi?id=1146334

Signed-off-by: Jincheng Miao <jmiao redhat com>
---
src/conf/cpu_conf.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c
index 116aa58..9b7fbb0 100644
--- a/src/conf/cpu_conf.c
+++ b/src/conf/cpu_conf.c
@@ -507,17 +507,19 @@ virCPUDefParseXML(xmlNodePtr node,

            memAccessStr = virXMLPropString(nodes[i], "memAccess");
            if (memAccessStr) {
-                def->cells[cur_cell].memAccess =
-                    virMemAccessTypeFromString(memAccessStr);
+                int rc = virMemAccessTypeFromString(memAccessStr);

-                if (def->cells[cur_cell].memAccess <= 0) {
+                if (rc <= 0) {
                    virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
                                   _("Invalid 'memAccess' attribute "
                                     "value '%s'"),
                                   memAccessStr);
                    VIR_FREE(memAccessStr);
-                    goto cleanup;
+                    goto error;
                }
+
+                def->cells[cur_cell].memAccess = rc;
+
                VIR_FREE(memAccessStr);
            }
        }
--
1.9.3


ACK and I'm adding a test case that shows the problem is fixed:

diff --git c/tests/qemuxml2argvdata/qemuxml2argv-hugepages-shared.xml w/tests/qemuxml2argvdata/qemuxml2argv-hugepages-memaccess-invalid.xml
similarity index 95%
copy from tests/qemuxml2argvdata/qemuxml2argv-hugepages-shared.xml
copy to tests/qemuxml2argvdata/qemuxml2argv-hugepages-memaccess-invalid.xml
index e7db69c..83b8ac2 100644
--- c/tests/qemuxml2argvdata/qemuxml2argv-hugepages-shared.xml
+++ w/tests/qemuxml2argvdata/qemuxml2argv-hugepages-memaccess-invalid.xml
@@ -21,7 +21,7 @@
  <cpu>
    <numa>
      <cell id='0' cpus='0' memory='1048576'/>
-      <cell id='1' cpus='1' memory='1048576' memAccess='shared'/>
+      <cell id='1' cpus='1' memory='1048576' memAccess='invalid'/>
      <cell id='2' cpus='2' memory='1048576' memAccess='private'/>
      <cell id='3' cpus='3' memory='1048576'/>
    </numa>
diff --git c/tests/qemuxml2argvtest.c w/tests/qemuxml2argvtest.c
index 4c85bfe..b380fd8 100644
--- c/tests/qemuxml2argvtest.c
+++ w/tests/qemuxml2argvtest.c
@@ -691,6 +691,7 @@ mymain(void)
            QEMU_CAPS_OBJECT_MEMORY_FILE);
    DO_TEST("hugepages-shared", QEMU_CAPS_MEM_PATH, QEMU_CAPS_OBJECT_MEMORY_RAM,
            QEMU_CAPS_OBJECT_MEMORY_FILE);
+    DO_TEST_PARSE_ERROR("hugepages-memaccess-invalid", NONE);
    DO_TEST_FAILURE("hugepages-pages4", QEMU_CAPS_MEM_PATH,
            QEMU_CAPS_OBJECT_MEMORY_RAM, QEMU_CAPS_OBJECT_MEMORY_FILE);
    DO_TEST("hugepages-pages5", QEMU_CAPS_MEM_PATH);
--

Martin

Attachment: signature.asc
Description: Digital signature


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