summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel P. Berrange <berrange@redhat.com>2006-11-15 19:40:00 +0000
committerDaniel P. Berrange <berrange@redhat.com>2006-11-15 19:40:00 +0000
commitc4726cbadbd3cc45ab8873a807d624890729502c (patch)
treed7de1ef877f9eba185215b86f4ce596e40476010
parente8a0109538b79471154739ee341b941170cf76f9 (diff)
downloadlibvirt-python-split-c4726cbadbd3cc45ab8873a807d624890729502c.tar.gz
libvirt-python-split-c4726cbadbd3cc45ab8873a807d624890729502c.tar.xz
libvirt-python-split-c4726cbadbd3cc45ab8873a807d624890729502c.zip
Fix unsigned long wraparound in python binding
-rw-r--r--libvir.c4
-rw-r--r--libvirt_wrap.h1
-rw-r--r--types.c12
3 files changed, 15 insertions, 2 deletions
diff --git a/libvir.c b/libvir.c
index a7b98dc..6d14fb2 100644
--- a/libvir.c
+++ b/libvir.c
@@ -261,8 +261,8 @@ libvirt_virDomainGetInfo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
}
py_retval = PyList_New(5);
PyList_SetItem(py_retval, 0, libvirt_intWrap((int) info.state));
- PyList_SetItem(py_retval, 1, libvirt_longWrap((long) info.maxMem));
- PyList_SetItem(py_retval, 2, libvirt_longWrap((long) info.memory));
+ PyList_SetItem(py_retval, 1, libvirt_ulongWrap(info.maxMem));
+ PyList_SetItem(py_retval, 2, libvirt_ulongWrap(info.memory));
PyList_SetItem(py_retval, 3, libvirt_intWrap((int) info.nrVirtCpu));
PyList_SetItem(py_retval, 4,
libvirt_longlongWrap((unsigned long long) info.cpuTime));
diff --git a/libvirt_wrap.h b/libvirt_wrap.h
index 906245a..8bcfdb3 100644
--- a/libvirt_wrap.h
+++ b/libvirt_wrap.h
@@ -41,6 +41,7 @@ typedef struct {
PyObject * libvirt_intWrap(int val);
PyObject * libvirt_longWrap(long val);
+PyObject * libvirt_ulongWrap(unsigned long val);
PyObject * libvirt_longlongWrap(long long val);
PyObject * libvirt_charPtrWrap(char *str);
PyObject * libvirt_constcharPtrWrap(const char *str);
diff --git a/types.c b/types.c
index b98beef..4ad4fa5 100644
--- a/types.c
+++ b/types.c
@@ -34,6 +34,18 @@ libvirt_longWrap(long val)
}
PyObject *
+libvirt_ulongWrap(unsigned long val)
+{
+ PyObject *ret;
+
+#ifdef DEBUG
+ printf("libvirt_ulongWrap: val = %lu\n", val);
+#endif
+ ret = PyLong_FromLong(val);
+ return (ret);
+}
+
+PyObject *
libvirt_longlongWrap(long long val)
{
PyObject *ret;