summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1995-01-10 15:23:19 (GMT)
committerGuido van Rossum <guido@python.org>1995-01-10 15:23:19 (GMT)
commitc206c766dd743c635397d5e6be9adfdfc8fb921c (patch)
tree903d3367d8e1411206d5c337e022afe80b10b1f9
parent946805d418ebaf0ae8fa790cd45aa69267a862f8 (diff)
downloadcpython-c206c766dd743c635397d5e6be9adfdfc8fb921c.zip
cpython-c206c766dd743c635397d5e6be9adfdfc8fb921c.tar.gz
cpython-c206c766dd743c635397d5e6be9adfdfc8fb921c.tar.bz2
fix memory leak and null pointer dereference
-rw-r--r--Objects/intobject.c2
-rw-r--r--Objects/longobject.c6
2 files changed, 6 insertions, 2 deletions
diff --git a/Objects/intobject.c b/Objects/intobject.c
index f020453..ca2961e 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 1829c3d..ef3f332 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);