summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael W. Hudson <mwh@python.net>2005-02-17 10:43:12 (GMT)
committerMichael W. Hudson <mwh@python.net>2005-02-17 10:43:12 (GMT)
commit8ed7e2e2db9161379f001e010d5de5d775e397b9 (patch)
tree44f7df467f14a09ff386a27960ee9921611789d3
parent8d751fa05e358e1b7bace33196feb4a45547dab3 (diff)
downloadcpython-8ed7e2e2db9161379f001e010d5de5d775e397b9.zip
cpython-8ed7e2e2db9161379f001e010d5de5d775e397b9.tar.gz
cpython-8ed7e2e2db9161379f001e010d5de5d775e397b9.tar.bz2
Backport: 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 :)
-rw-r--r--Lib/test/test_funcattrs.py3
-rw-r--r--Objects/funcobject.c2
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;
}