Fix two crashers (borrowed_ref_[34].py from the trunk).
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index ceb2fc7..f82430c 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -1218,11 +1218,14 @@
"%s() got an unexpected keyword argument", name);
return NULL;
}
+ Py_INCREF(keyfunc);
}
it = PyObject_GetIter(v);
- if (it == NULL)
+ if (it == NULL) {
+ Py_XDECREF(keyfunc);
return NULL;
+ }
maxitem = NULL; /* the result */
maxval = NULL; /* the value associated with the result */
@@ -1271,6 +1274,7 @@
else
Py_DECREF(maxval);
Py_DECREF(it);
+ Py_XDECREF(keyfunc);
return maxitem;
Fail_it_item_and_val:
@@ -1281,6 +1285,7 @@
Py_XDECREF(maxval);
Py_XDECREF(maxitem);
Py_DECREF(it);
+ Py_XDECREF(keyfunc);
return NULL;
}