summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael W. Hudson <mwh@python.net>2005-02-17 10:37:21 +0000
committerMichael W. Hudson <mwh@python.net>2005-02-17 10:37:21 +0000
commitee319f66ab6fc041ff2f576562997e4c7bd33d3e (patch)
tree18bb142ce7703910f7ac3a25c69406aa1d7f2ad6
parent5bbe6ad2b5834a6f087d30fe9c54604eefc8d2c3 (diff)
downloadcpython-git-ee319f66ab6fc041ff2f576562997e4c7bd33d3e.tar.gz
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 1acfeb5e65..7a083b70df 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 c7f7c9d23d..c0c91c95d1 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;
}