summaryrefslogtreecommitdiff
path: root/Modules
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2001-06-13 01:26:35 +0000
committerTim Peters <tim.peters@gmail.com>2001-06-13 01:26:35 +0000
commita540e5be64c3b9faae44d0cbf97b2b20ba74906d (patch)
tree2b12fb737cdeb78c301020be785cdeceb331873c /Modules
parent8fe78862bfafd82be4fa808000e143c9aab18f41 (diff)
downloadcpython-a540e5be64c3b9faae44d0cbf97b2b20ba74906d.tar.gz
The new {b,l}p_{u,}longlong() didn't check get_pylong()'s return for NULL.
Repaired that, and added appropriate tests for it to test_struct.py.
Diffstat (limited to 'Modules')
-rw-r--r--Modules/structmodule.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/Modules/structmodule.c b/Modules/structmodule.c
index 4a8886f8be..66b3ac31d9 100644
--- a/Modules/structmodule.c
+++ b/Modules/structmodule.c
@@ -874,6 +874,8 @@ bp_longlong(char *p, PyObject *v, const formatdef *f)
{
int res;
v = get_pylong(v);
+ if (v == NULL)
+ return -1;
res = _PyLong_AsByteArray((PyLongObject *)v,
(unsigned char *)p,
8,
@@ -888,6 +890,8 @@ bp_ulonglong(char *p, PyObject *v, const formatdef *f)
{
int res;
v = get_pylong(v);
+ if (v == NULL)
+ return -1;
res = _PyLong_AsByteArray((PyLongObject *)v,
(unsigned char *)p,
8,
@@ -1036,6 +1040,8 @@ lp_longlong(char *p, PyObject *v, const formatdef *f)
{
int res;
v = get_pylong(v);
+ if (v == NULL)
+ return -1;
res = _PyLong_AsByteArray((PyLongObject*)v,
(unsigned char *)p,
8,
@@ -1050,6 +1056,8 @@ lp_ulonglong(char *p, PyObject *v, const formatdef *f)
{
int res;
v = get_pylong(v);
+ if (v == NULL)
+ return -1;
res = _PyLong_AsByteArray((PyLongObject*)v,
(unsigned char *)p,
8,