diff options
author | Guido van Rossum <guido@python.org> | 2000-10-02 10:21:59 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2000-10-02 10:21:59 (GMT) |
commit | e3c3b27d33eb0b092378c0a6a4f13cb0515ac3b4 (patch) | |
tree | ac38c264253f3072e4e0ddccfa8eb446e8599f41 /Parser/parser.c | |
parent | f6791f3d12c7792fa482aae88ccdf5d742b9a530 (diff) | |
download | cpython-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.c | 2 |
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; |