From 3a3647ada32a29ae781e8474387da14f7577abab Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Sun, 18 Nov 2007 19:50:46 +0100 Subject: [PATCH] Default token buffer is 1 byte long, which makes even small limits on maximum token size work. --- judge/token.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/judge/token.c b/judge/token.c index 69b9398..3c8ce38 100644 --- a/judge/token.c +++ b/judge/token.c @@ -19,7 +19,7 @@ void tok_init(struct tokenizer *t, struct stream *s) { memset(t, 0, sizeof(*t)); t->stream = s; - t->bufsize = 256; + t->bufsize = 1; t->token = xmalloc(t->bufsize); t->maxsize = DEFAULT_MAX_TOKEN; t->line = 1; @@ -76,11 +76,11 @@ char *get_token(struct tokenizer *t) t->token[len++] = c; if (len >= t->bufsize) { - if (len >= t->maxsize) + if (len > t->maxsize) tok_err(t, "Token too long"); t->bufsize *= 2; if (t->bufsize > t->maxsize) - t->bufsize = t->maxsize; + t->bufsize = t->maxsize+1; t->token = xrealloc(t->token, t->bufsize); } c = sgetc(t->stream); -- 2.39.2