[libvirt-python PATCH] Fix cannot use VIR_CONNECT_GET_ALL_DOMAINS_STATS_ENFORCE_STATS flags in domainListGetStats

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

 



When set flags=libvirt.VIR_CONNECT_GET_ALL_DOMAINS_STATS_ENFORCE_STATS, python will report
a  error:
OverflowError: signed integer is greater than maximum

Because VIR_CONNECT_GET_ALL_DOMAINS_STATS_ENFORCE_STATS = 2147483648 (2**31), and it set a
signed int in PyArg_ParseTuple function.

    if (!PyArg_ParseTuple(args, (char *)"OOii:virDomainListGetStats",
                          &pyobj_conn, &py_domlist, &stats, &flags))

When python >= 2.3, 'I' means unsigned int and 'i' means int,so there should use 'I'.

From: https://docs.python.org/2/c-api/arg.html

I also found a lot of function use 'i' for a unsigned int, but i didn't change them.

Signed-off-by: Luyao Huang <lhuang@xxxxxxxxxx>
---
 libvirt-override.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libvirt-override.c b/libvirt-override.c
index c887b71..6dacdac 100644
--- a/libvirt-override.c
+++ b/libvirt-override.c
@@ -8126,7 +8126,7 @@ libvirt_virDomainListGetStats(PyObject *self ATTRIBUTE_UNUSED,
     unsigned int flags;
     unsigned int stats;
 
-    if (!PyArg_ParseTuple(args, (char *)"OOii:virDomainListGetStats",
+    if (!PyArg_ParseTuple(args, (char *)"OOII:virDomainListGetStats",
                           &pyobj_conn, &py_domlist, &stats, &flags))
         return NULL;
 
-- 
1.8.3.1

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