summaryrefslogtreecommitdiff
path: root/src/list.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/list.c')
-rw-r--r--src/list.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/list.c b/src/list.c
index b9bfda7..c4c8367 100644
--- a/src/list.c
+++ b/src/list.c
@@ -56,7 +56,7 @@ xpybList_init(xpybList *self, PyObject *args, PyObject *kw)
PyObject *parent, *type, *obj, *arglist;
const char *data;
- if (!PyArg_ParseTupleAndKeywords(args, kw, "OiiO|i", kwlist, &parent,
+ if (!PyArg_ParseTupleAndKeywords(args, kw, "OnnO|n", kwlist, &parent,
&offset, &length, &type, &size))
return -1;
@@ -66,7 +66,7 @@ xpybList_init(xpybList *self, PyObject *args, PyObject *kw)
if (PyObject_AsReadBuffer(parent, (const void **)&data, &datalen) < 0)
return -1;
- if (length * size - offset > datalen) {
+ if (length * size + offset > datalen) {
PyErr_SetString(xpybExcept_base, "Protocol object buffer too short.");
return -1;
}
@@ -80,14 +80,14 @@ xpybList_init(xpybList *self, PyObject *args, PyObject *kw)
return -1;
cur += size;
} else if (size > 0) {
- arglist = Py_BuildValue("(Oii)", parent, cur, size);
+ arglist = Py_BuildValue("(Onn)", parent, cur, size);
obj = PyEval_CallObject(type, arglist);
Py_DECREF(arglist);
if (obj == NULL)
return -1;
cur += size;
} else {
- arglist = Py_BuildValue("(Oi)", parent, cur);
+ arglist = Py_BuildValue("(On)", parent, cur);
obj = PyEval_CallObject(type, arglist);
Py_DECREF(arglist);
if (obj == NULL)