]> git.mxchange.org Git - simgear.git/commitdiff
#453: Using = as Nasal function argument crashes FG
authorThorstenB <brehmt@gmail.com>
Sat, 29 Oct 2011 19:20:46 +0000 (21:20 +0200)
committerThorstenB <brehmt@gmail.com>
Sat, 29 Oct 2011 19:20:46 +0000 (21:20 +0200)
Keep Nasal parser from crashing when "=" function misses a left-hand
element, i.e. when parsing "sin(=)".
(Or do people writing such terrible syntax deserve a crash? ;-) ).

simgear/nasal/codegen.c

index d1c05ef6254808bc7abf6c20b9e4d5f7f6d44afd..059c1144525b39a41bbd9245376cbfc3874fd110 100644 (file)
@@ -536,6 +536,9 @@ static void genAssign(struct Parser* p, struct Token* t)
 {
     struct Token *lv = LEFT(t), *rv = RIGHT(t);
     int len, dummy, var=0;
+    if (!lv)
+        naParseError(p, "bad assignment, missing variable", t->line);
+    else
     if(parListLen(lv) || (lv->type == TOK_VAR && parListLen(RIGHT(lv)))) {
         if(lv->type == TOK_VAR) { lv = RIGHT(lv); var = 1; }
         len = parListLen(lv);