summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaria Matejka <mq@ucw.cz>2023-06-22 17:25:18 +0200
committerMaria Matejka <mq@ucw.cz>2023-06-22 17:25:18 +0200
commit5f2ecb2298a6fe4b2fcd9efc0b39c36202496c2c (patch)
treecbce11eb8987f9b505a304d17e0e8d31651caf67
parentf8bcb037b5b71a19209f1b63d52895c8c34c675b (diff)
parent52bae235b716a3c8d629ddf1306178568c69833f (diff)
Merge tag 'v2.13.1'
-rw-r--r--NEWS6
-rw-r--r--filter/decl.m46
-rw-r--r--filter/f-inst.c1
-rw-r--r--filter/test.conf25
-rw-r--r--misc/bird.spec2
-rw-r--r--sysdep/config.h2
6 files changed, 34 insertions, 8 deletions
diff --git a/NEWS b/NEWS
index 070f8d2f..30f3b932 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,9 @@
+Version 2.13.1 (2023-06-23)
+ o BGP: Fix role check when no capability option is present
+ o Filter: Fixed segfault when a case option had an empty block
+
+ This is a bugfix version.
+
Version 2.13 (2023-04-21)
o Babel: IPv4 via IPv6 extension (RFC 9229)
o Babel: Improve authentication on lossy networks
diff --git a/filter/decl.m4 b/filter/decl.m4
index 5b35b672..7c863bdc 100644
--- a/filter/decl.m4
+++ b/filter/decl.m4
@@ -200,7 +200,7 @@ FID_INTERPRET_BODY()')
# Executing another filter line. This replaces the recursion
# that was needed in the former implementation.
m4_define(LINEX, `FID_INTERPRET_EXEC()LINEX_($1)FID_INTERPRET_NEW()return $1 FID_INTERPRET_BODY()')
-m4_define(LINEX_, `do {
+m4_define(LINEX_, `do if ($1) {
fstk->estk[fstk->ecnt].pos = 0;
fstk->estk[fstk->ecnt].line = $1;
fstk->estk[fstk->ecnt].ventry = fstk->vcnt;
@@ -227,9 +227,7 @@ if (!f_same(f1->fl$1, f2->fl$1)) return 0;
FID_ITERATE_BODY()m4_dnl
if (whati->fl$1) BUFFER_PUSH(fit->lines) = whati->fl$1;
FID_INTERPRET_EXEC()m4_dnl
-do { if (whati->fl$1) {
- LINEX_(whati->fl$1);
-} } while(0)
+LINEX_(whati->fl$1)
FID_INTERPRET_NEW()m4_dnl
return whati->f$1
FID_INTERPRET_BODY()')
diff --git a/filter/f-inst.c b/filter/f-inst.c
index e4b47ff4..33436853 100644
--- a/filter/f-inst.c
+++ b/filter/f-inst.c
@@ -1327,7 +1327,6 @@
FID_HIC(,break,return NULL);
}
}
- /* It is actually possible to have t->data NULL */
LINEX(t->data);
}
diff --git a/filter/test.conf b/filter/test.conf
index 600c551e..e9e3af89 100644
--- a/filter/test.conf
+++ b/filter/test.conf
@@ -39,6 +39,18 @@ bt_test_same(onef, oneg, 1);
bt_test_same(onef, twof, 0);
/*
+ * Testing filter corner cases
+ * ---------------------------
+ */
+
+function t_nothing() {}
+bt_test_suite(t_nothing, "Testing nothing");
+
+function t_metanothing() { t_nothing(); }
+bt_test_suite(t_metanothing, "Testing meta nothing");
+
+
+/*
* Testing boolean expressions
* ---------------------------
*/
@@ -76,6 +88,14 @@ bt_test_suite(t_bool, "Testing boolean expressions");
* ----------------
*/
+function aux_t_int(int t; int u)
+{
+ case t {
+ 1: {}
+ else: {}
+ }
+}
+
define four = 4;
define xyzzy = (120+10);
define '1a-a1' = (xyzzy-100);
@@ -120,7 +140,10 @@ function t_int()
else: bt_assert(false);
}
-
+ aux_t_int(1, 2);
+ aux_t_int(1, 3);
+ aux_t_int(2, 3);
+ aux_t_int(2, 2);
}
bt_test_suite(t_int, "Testing integers");
diff --git a/misc/bird.spec b/misc/bird.spec
index af534c64..2fa6c2bf 100644
--- a/misc/bird.spec
+++ b/misc/bird.spec
@@ -1,6 +1,6 @@
Summary: BIRD Internet Routing Daemon
Name: bird
-Version: 2.13
+Version: 2.13.1
Release: 1
Copyright: GPL
Group: Networking/Daemons
diff --git a/sysdep/config.h b/sysdep/config.h
index 80b8d671..cf5787d0 100644
--- a/sysdep/config.h
+++ b/sysdep/config.h
@@ -13,7 +13,7 @@
#ifdef GIT_LABEL
#define BIRD_VERSION XSTR1(GIT_LABEL)
#else
-#define BIRD_VERSION "2.13"
+#define BIRD_VERSION "2.13.1"
#endif
/* Include parameters determined by configure script */