Add back some safeguards on the index elements that were lost in the
last patch. Dave Ascher found a case that dumps core without these:
def myComparison(x,y):
return cmp(x%3,y%7)
z = range(12)
z.sort(myComparison)
diff --git a/Objects/listobject.c b/Objects/listobject.c
index a5bd038..8bec8af 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -719,7 +719,7 @@
r = hi-2;
for (;;) {
/* Move left index to element > pivot */
- for (;;) {
+ while (l < hi) {
k = docompare(*l, pivot, compare);
if (k == CMPERROR)
return -1;
@@ -728,7 +728,7 @@
l++;
}
/* Move right index to element < pivot */
- for (;;) {
+ while (r >= lo) {
k = docompare(pivot, *r, compare);
if (k == CMPERROR)
return -1;