Kaydet (Commit) da9c5b35 authored tarafından Tim Peters's avatar Tim Peters

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.
üst d1a7da6c
......@@ -314,4 +314,10 @@ def test_std_qQ():
pass
test_one_qQ(x)
# Some error cases.
for direction in "<>":
for letter in "qQ":
for badobject in "a string", 3+42j, randrange:
any_err(struct.pack, direction + letter, badobject)
test_std_qQ()
......@@ -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,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment