From 83f9ad8399a7b199263ea1522a8d599d6dea6eb0 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 5 Aug 1997 16:51:05 +0000 Subject: [PATCH] Fix bug in comparing function objects detected by Sjoerd: SystemError: bad argument to internal function caused by comparing NULL pointer default args. --- Objects/funcobject.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Objects/funcobject.c b/Objects/funcobject.c index 53c926f3ca4..be67259ce98 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); }