summaryrefslogtreecommitdiff
path: root/src/list.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/list.c')
-rw-r--r--src/list.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/list.c b/src/list.c
index c4c8367..2633685 100644
--- a/src/list.c
+++ b/src/list.c
@@ -66,8 +66,9 @@ xpybList_init(xpybList *self, PyObject *args, PyObject *kw)
if (PyObject_AsReadBuffer(parent, (const void **)&data, &datalen) < 0)
return -1;
- if (length * size + offset > datalen) {
- PyErr_SetString(xpybExcept_base, "Protocol object buffer too short.");
+ if (size > 0 && length * size + offset > datalen) {
+ PyErr_Format(xpybExcept_base, "Protocol object buffer too short "
+ "(expected %zd got %zd).", length * size + offset, datalen);
return -1;
}