summaryrefslogtreecommitdiff
path: root/Python
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2010-04-03 01:28:57 +0000
committerBenjamin Peterson <benjamin@python.org>2010-04-03 01:28:57 +0000
commit673a3b2c772fec6e3a7d46b4e15fe73b7c2c434d (patch)
tree40e3cebd1f7348f523b966ca318bf17044e9af30 /Python
parent8c696976fabbd2f6c5fdb6789f6a63dfe4d31b23 (diff)
downloadcpython-673a3b2c772fec6e3a7d46b4e15fe73b7c2c434d.tar.gz
give TypeError when trying to set T_STRING_INPLACE
Diffstat (limited to 'Python')
-rw-r--r--Python/structmember.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/Python/structmember.c b/Python/structmember.c
index d2d827341b..3b4a4d2fda 100644
--- a/Python/structmember.c
+++ b/Python/structmember.c
@@ -172,7 +172,7 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v)
addr += l->offset;
- if ((l->flags & READONLY) || l->type == T_STRING)
+ if ((l->flags & READONLY))
{
PyErr_SetString(PyExc_TypeError, "readonly attribute");
return -1;
@@ -329,6 +329,10 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v)
return -1;
}
break;
+ case T_STRING:
+ case T_STRING_INPLACE:
+ PyErr_SetString(PyExc_TypeError, "readonly attribute");
+ return -1;
#ifdef HAVE_LONG_LONG
case T_LONGLONG:{
PY_LONG_LONG value;