diff options
| author | Guido van Rossum <guido@python.org> | 1995-01-10 15:23:19 +0000 |
|---|---|---|
| committer | Guido van Rossum <guido@python.org> | 1995-01-10 15:23:19 +0000 |
| commit | c206c766dd743c635397d5e6be9adfdfc8fb921c (patch) | |
| tree | 903d3367d8e1411206d5c337e022afe80b10b1f9 | |
| parent | 946805d418ebaf0ae8fa790cd45aa69267a862f8 (diff) | |
| download | cpython-git-c206c766dd743c635397d5e6be9adfdfc8fb921c.tar.gz | |
fix memory leak and null pointer dereference
| -rw-r--r-- | Objects/intobject.c | 2 | ||||
| -rw-r--r-- | Objects/longobject.c | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/Objects/intobject.c b/Objects/intobject.c index f020453049..ca2961e835 100644 --- a/Objects/intobject.c +++ b/Objects/intobject.c @@ -523,6 +523,8 @@ int_pow(v, w, z) XDECREF(t2); return(NULL); } + DECREF(t1); + DECREF(t2); ix=mod; } return newintobject(ix); diff --git a/Objects/longobject.c b/Objects/longobject.c index 1829c3dee7..ef3f332b2d 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -552,7 +552,9 @@ x_divrem(v1, w1, prem) } } /* for j, k */ - if (a != NULL) { + if (a == NULL) + *prem = NULL; + else { a = long_normalize(a); *prem = divrem1(v, d, &d); /* d receives the (unused) remainder */ @@ -1001,7 +1003,7 @@ long_pow(a, b, c) break; } } - if (a == NULL) + if (a == NULL || z == NULL) break; } XDECREF(a); |
