From ee319f66ab6fc041ff2f576562997e4c7bd33d3e Mon Sep 17 00:00:00 2001 From: "Michael W. Hudson" Date: Thu, 17 Feb 2005 10:37:21 +0000 Subject: Fix [ 1124295 ] Function's __name__ no longer accessible in restricted mode which I introduced with a bit of mindless copy-paste when making __name__ writable. You can't assign to __name__ in restricted mode, which I'm going to pretend was intentional :) --- Lib/test/test_funcattrs.py | 3 +++ Objects/funcobject.c | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_funcattrs.py b/Lib/test/test_funcattrs.py index 1acfeb5..7a083b7 100644 --- a/Lib/test/test_funcattrs.py +++ b/Lib/test/test_funcattrs.py @@ -276,6 +276,9 @@ def test_func_name(): verify(f.func_name == "h") cantset(f, "func_globals", 1) cantset(f, "__name__", 1) + # test that you can access func.__name__ in restricted mode + s = """def f(): pass\nf.__name__""" + exec s in {'__builtins__':{}} def test_func_code(): diff --git a/Objects/funcobject.c b/Objects/funcobject.c index c7f7c9d..c0c91c9 100644 --- a/Objects/funcobject.c +++ b/Objects/funcobject.c @@ -262,8 +262,6 @@ func_set_code(PyFunctionObject *op, PyObject *value) static PyObject * func_get_name(PyFunctionObject *op) { - if (restricted()) - return NULL; Py_INCREF(op->func_name); return op->func_name; } -- cgit v0.12