diff --git a/plugins/script b/plugins/script index c81aaa6..f725048 100755 --- a/plugins/script +++ b/plugins/script @@ -469,13 +469,16 @@ parse_word (struct tokenizer *self) struct buffer buf = BUFFER_INITIALIZER; char c; - // Here we accept almost anything that doesn't break the grammar... + // Here we accept almost anything that doesn't break the grammar while (!strchr (" []\"", (c = *self->cursor++)) && (unsigned char) c > ' ') buffer_append_c (&buf, c); self->cursor--; - // ...so an empty word can only mean a bug within our caller. - assert (buf.len != 0); + if (!buf.len) + { + self->error = "invalid input"; + return NULL; + } struct item *item = new_word (buf.s, buf.len); free (buf.s);