]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Filter: Avoid calling interpret() on NULL in IF
authorJan Maria Matejka <mq@ucw.cz>
Thu, 31 May 2018 09:27:34 +0000 (11:27 +0200)
committerJan Maria Matejka <mq@ucw.cz>
Thu, 31 May 2018 09:27:34 +0000 (11:27 +0200)
filter/filter.c

index 47fb81e8d64e3b4bcc9bd01171b54e1763ea5ad8..3fa3d34c5c8136641a69f43929dcf1b358331d5a 100644 (file)
@@ -900,12 +900,14 @@ interpret(struct f_inst *what)
     break;
   case FI_CONDITION:
     ARG(1, T_BOOL);
-    if (v1.val.i) {
+    if (v1.val.i && what->a2.p) {
       ARG_ANY(2);
-    } else {
+      break;
+    }
+    if ((!v1.val.i) && what->a3.p) {
       ARG_ANY(3);
+      break;
     }
-    break;
   case FI_NOP:
     debug( "No operation\n" );
     break;