Mercurial > cpython-lru_cache-weakref
diff Python/symtable.c @ 80141:6964a9b6c1ea 3.3
check return value of _PyUnicode_AsString
| author | Benjamin Peterson <benjamin@python.org> |
|---|---|
| date | Wed, 31 Oct 2012 19:01:42 -0400 |
| parents | 5b64fefbc16b |
| children | ab02cd145f56 fbfaef0a9c00 |
line wrap: on
line diff
--- a/Python/symtable.c Wed Oct 31 14:22:25 2012 -0400 +++ b/Python/symtable.c Wed Oct 31 19:01:42 2012 -0400 @@ -1202,12 +1202,14 @@ asdl_seq *seq = s->v.Global.names; for (i = 0; i < asdl_seq_LEN(seq); i++) { identifier name = (identifier)asdl_seq_GET(seq, i); - char *c_name = _PyUnicode_AsString(name); long cur = symtable_lookup(st, name); if (cur < 0) return 0; if (cur & (DEF_LOCAL | USE)) { char buf[256]; + char *c_name = _PyUnicode_AsString(name); + if (!c_name) + return 0; if (cur & DEF_LOCAL) PyOS_snprintf(buf, sizeof(buf), GLOBAL_AFTER_ASSIGN, @@ -1229,12 +1231,14 @@ asdl_seq *seq = s->v.Nonlocal.names; for (i = 0; i < asdl_seq_LEN(seq); i++) { identifier name = (identifier)asdl_seq_GET(seq, i); - char *c_name = _PyUnicode_AsString(name); long cur = symtable_lookup(st, name); if (cur < 0) return 0; if (cur & (DEF_LOCAL | USE)) { char buf[256]; + char *c_name = _PyUnicode_AsString(name); + if (!c_name) + return 0; if (cur & DEF_LOCAL) PyOS_snprintf(buf, sizeof(buf), NONLOCAL_AFTER_ASSIGN,
