From: Guido van Rossum Date: Tue, 5 Aug 1997 16:51:05 +0000 (+0000) Subject: Fix bug in comparing function objects detected by Sjoerd: X-Git-Tag: v1.5a3~133 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=83f9ad8399a7b199263ea1522a8d599d6dea6eb0;p=python Fix bug in comparing function objects detected by Sjoerd: SystemError: bad argument to internal function caused by comparing NULL pointer default args. --- diff --git a/Objects/funcobject.c b/Objects/funcobject.c index 53c926f3ca..be67259ce9 100644 --- a/Objects/funcobject.c +++ b/Objects/funcobject.c @@ -182,9 +182,15 @@ func_compare(f, g) int c; if (f->func_globals != g->func_globals) return (f->func_globals < g->func_globals) ? -1 : 1; - c = PyObject_Compare(f->func_defaults, g->func_defaults); - if (c != 0) - return c; + if (f->func_defaults != g->func_defaults) { + if (f->func_defaults == NULL) + return -1; + if (g->func_defaults == NULL) + return 1; + c = PyObject_Compare(f->func_defaults, g->func_defaults); + if (c != 0) + return c; + } return PyObject_Compare(f->func_code, g->func_code); }