]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[Partial backport of r45947 | neal.norwitz]
authorAndrew M. Kuchling <amk@amk.ca>
Mon, 9 Oct 2006 18:42:49 +0000 (18:42 +0000)
committerAndrew M. Kuchling <amk@amk.ca>
Mon, 9 Oct 2006 18:42:49 +0000 (18:42 +0000)
Fix problems found by Coverity.

longobject.c: also fix an ssize_t problem
  <a> could have been NULL, so hoist the size calc to not use <a>.

[The ssize_t change isn't needed for 2.4.  The other changes in this revision
 are to modules not present in 2.4. --amk]

Objects/longobject.c

index 5847feb87bbce7b0499b63f121b365445197cf22..97becdb5a44eb0b6b2b0d86d4c450a34db9302d3 100644 (file)
@@ -1468,9 +1468,10 @@ x_divrem(PyLongObject *v1, PyLongObject *w1, PyLongObject **prem)
        assert(size_w == ABS(w->ob_size)); /* That's how d was calculated */
 
        size_v = ABS(v->ob_size);
-       a = _PyLong_New(size_v - size_w + 1);
+       k = size_v - size_w;
+       a = _PyLong_New(k + 1);
 
-       for (j = size_v, k = a->ob_size-1; a != NULL && k >= 0; --j, --k) {
+       for (j = size_v; a != NULL && k >= 0; --j, --k) {
                digit vj = (j >= size_v) ? 0 : v->ob_digit[j];
                twodigits q;
                stwodigits carry = 0;