summaryrefslogtreecommitdiffstats
path: root/Parser/parser.c
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2000-10-02 10:21:59 (GMT)
committerGuido van Rossum <guido@python.org>2000-10-02 10:21:59 (GMT)
commite3c3b27d33eb0b092378c0a6a4f13cb0515ac3b4 (patch)
treeac38c264253f3072e4e0ddccfa8eb446e8599f41 /Parser/parser.c
parentf6791f3d12c7792fa482aae88ccdf5d742b9a530 (diff)
downloadcpython-e3c3b27d33eb0b092378c0a6a4f13cb0515ac3b4.zip
cpython-e3c3b27d33eb0b092378c0a6a4f13cb0515ac3b4.tar.gz
cpython-e3c3b27d33eb0b092378c0a6a4f13cb0515ac3b4.tar.bz2
Fix a bug in stack overflow error handling. This fixes half of Bug
#115555. The error from s_push() on stack overflow was -1, which was passed through unchanged by push(), but not tested for by push()'s caller -- which only expected positive error codes. Fixed by changing s_push() to return E_NOMEM on stack overflow. (Not quite the proper error code either, but I can't be bothered adding a new E_STACKOVERFLOW error code in all the right places.)
Diffstat (limited to 'Parser/parser.c')
-rw-r--r--Parser/parser.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/Parser/parser.c b/Parser/parser.c
index d379f60..6eaa925 100644
--- a/Parser/parser.c
+++ b/Parser/parser.c
@@ -40,7 +40,7 @@ s_push(register stack *s, dfa *d, node *parent)
register stackentry *top;
if (s->s_top == s->s_base) {
fprintf(stderr, "s_push: parser stack overflow\n");
- return -1;
+ return E_NOMEM;
}
top = --s->s_top;
top->s_dfa = d;