Verifica limites de token antes de alocar memória.
[cascardo/declara.git] / lib / token.c
index 50b82de..da2b8bc 100644 (file)
@@ -86,6 +86,9 @@ char ** tokens_new(char *line)
        int i;
        end = line;
        do {
+               start = token_next(end, &end);
+               if (start == end)
+                       break;
                if (next <= alloc) {
                        char **nargs;
                        alloc += inc;
@@ -101,9 +104,6 @@ char ** tokens_new(char *line)
                                nargs[i] = NULL;
                        args = nargs;
                }
-               start = token_next(end, &end);
-               if (start == end)
-                       break;
                if (*start == '"') {
                        args[next] = token_unescape(start, end - 1);
                } else {