summaryrefslogtreecommitdiff
path: root/libvirt-override.c
diff options
context:
space:
mode:
authorJohn Ferlan <jferlan@redhat.com>2018-11-20 11:56:47 -0500
committerJohn Ferlan <jferlan@redhat.com>2018-11-20 13:24:13 -0500
commit2b4bd07e0a2239cd9a4da49b9bd5229ac46e7875 (patch)
tree96feb708c856809ac101758efa928da24fb7f9d1 /libvirt-override.c
parent1479577af3296f2a3f70389a3dacb8a8082a0fa7 (diff)
downloadlibvirt-python-2b4bd07e0a2239cd9a4da49b9bd5229ac46e7875.tar.gz
Add check for params, nparams being a dictionary
If PyDict_Check fails, we should force an error rather than blindly continuing on. Signed-off-by: John Ferlan <jferlan@redhat.com> Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
Diffstat (limited to 'libvirt-override.c')
-rw-r--r--libvirt-override.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/libvirt-override.c b/libvirt-override.c
index 0353306..8748101 100644
--- a/libvirt-override.c
+++ b/libvirt-override.c
@@ -7861,6 +7861,11 @@ libvirt_virDomainMigrate3(PyObject *self ATTRIBUTE_UNUSED,
domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain);
dconn = (virConnectPtr) PyvirConnect_Get(pyobj_dconn);
+ if (!PyDict_Check(dict)) {
+ PyErr_Format(PyExc_TypeError, "migration params must be a dictionary");
+ return NULL;
+ }
+
if (virPyDictToTypedParams(dict, &params, &nparams,
virPyDomainMigrate3Params,
VIR_N_ELEMENTS(virPyDomainMigrate3Params)) < 0) {
@@ -7894,6 +7899,11 @@ libvirt_virDomainMigrateToURI3(PyObject *self ATTRIBUTE_UNUSED,
domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain);
+ if (!PyDict_Check(dict)) {
+ PyErr_Format(PyExc_TypeError, "migration params must be a dictionary");
+ return NULL;
+ }
+
if (virPyDictToTypedParams(dict, &params, &nparams,
virPyDomainMigrate3Params,
VIR_N_ELEMENTS(virPyDomainMigrate3Params)) < 0) {
@@ -8776,6 +8786,9 @@ libvirt_virDomainBlockCopy(PyObject *self ATTRIBUTE_UNUSED,
VIR_N_ELEMENTS(virPyDomainBlockCopyParams)) < 0) {
return NULL;
}
+ } else {
+ PyErr_Format(PyExc_TypeError, "block params must be a dictionary");
+ return NULL;
}
dom = (virDomainPtr) PyvirDomain_Get(pyobj_dom);