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

Martin Kletzander mkletzan at redhat.com
Fri Sep 26 14:08:50 UTC 2014


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 at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140926/e9d4949c/attachment-0001.sig>


More information about the libvir-list mailing list