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.)
This commit is contained in:
Guido van Rossum 2000-10-02 10:21:59 +00:00
parent f6791f3d12
commit e3c3b27d33
1 changed files with 1 additions and 1 deletions

View File

@ -40,7 +40,7 @@ s_push(register stack *s, dfa *d, node *parent)
register stackentry *top; register stackentry *top;
if (s->s_top == s->s_base) { if (s->s_top == s->s_base) {
fprintf(stderr, "s_push: parser stack overflow\n"); fprintf(stderr, "s_push: parser stack overflow\n");
return -1; return E_NOMEM;
} }
top = --s->s_top; top = --s->s_top;
top->s_dfa = d; top->s_dfa = d;