From 8ece6a4f6490c7259636b52f1ab027944f4571e0 Mon Sep 17 00:00:00 2001
From: Přemysl Janouch
Date: Thu, 31 Jul 2014 23:07:37 +0200
Subject: script: fix parse_word()
With the `c > ' '` requirement we can't have an assertion for length in there.
---
plugins/script | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
(limited to 'plugins/script')
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);
--
cgit v1.2.3-70-g09d2