From ac48e72bf6f9f491824e2de59a035c93aab8f81b Mon Sep 17 00:00:00 2001 From: "Ondrej Zajicek (work)" Date: Tue, 12 Dec 2017 15:56:31 +0100 Subject: [PATCH] Fix some minor issues --- lib/flowspec_test.c | 4 ++-- lib/net.h | 4 ++-- sysdep/bsd/krt-sock.Y | 4 ++-- sysdep/bsd/krt-sock.c | 10 +++++++--- sysdep/bsd/krt-sys.h | 2 +- 5 files changed, 14 insertions(+), 10 deletions(-) diff --git a/lib/flowspec_test.c b/lib/flowspec_test.c index 69bc279d..dd71dc7b 100644 --- a/lib/flowspec_test.c +++ b/lib/flowspec_test.c @@ -70,8 +70,8 @@ t_first_part(void) net_addr_flow4 *f; NET_ADDR_FLOW4_(f, ip4_build(10,0,0,1), 24, ((byte[]) { 0x00, 0x00, 0xab })); - const byte const *under240 = &f->data[1]; - const byte const *above240 = &f->data[2]; + const byte *under240 = &f->data[1]; + const byte *above240 = &f->data[2]; /* Case 0x00 0x00 */ bt_assert(flow4_first_part(f) == NULL); diff --git a/lib/net.h b/lib/net.h index 4b2077ae..69f00641 100644 --- a/lib/net.h +++ b/lib/net.h @@ -358,10 +358,10 @@ static inline int net_zero_roa6(const net_addr_roa6 *a) { return !a->pxlen && ip6_zero(a->prefix) && !a->max_pxlen && !a->asn; } static inline int net_zero_flow4(const net_addr_flow4 *a) -{ return !a->pxlen && ip4_zero(a->prefix) && !a->data; } +{ return !a->pxlen && ip4_zero(a->prefix) && (a->length == sizeof(net_addr_flow4)); } static inline int net_zero_flow6(const net_addr_flow6 *a) -{ return !a->pxlen && ip6_zero(a->prefix) && !a->data; } +{ return !a->pxlen && ip6_zero(a->prefix) && (a->length == sizeof(net_addr_flow6)); } static inline int net_zero_mpls(const net_addr_mpls *a) { return !a->label; } diff --git a/sysdep/bsd/krt-sock.Y b/sysdep/bsd/krt-sock.Y index 0218f188..81422c79 100644 --- a/sysdep/bsd/krt-sock.Y +++ b/sysdep/bsd/krt-sock.Y @@ -20,8 +20,8 @@ kern_sys_item: KERNEL TABLE expr { if ($3 && (krt_max_tables == 1)) cf_error("Multiple kernel routing tables not supported"); - if ($3 < 0 || $3 >= krt_max_tables) - cf_error("Kernel table id must be in range 0-%d", krt_max_tables - 1); + if ($3 >= krt_max_tables) + cf_error("Kernel table id must be in range 0-%u", krt_max_tables - 1); THIS_KRT->sys.table_id = $3; } diff --git a/sysdep/bsd/krt-sock.c b/sysdep/bsd/krt-sock.c index 604cd510..0a52cfbd 100644 --- a/sysdep/bsd/krt-sock.c +++ b/sysdep/bsd/krt-sock.c @@ -74,11 +74,11 @@ const int rt_default_ecmp = 0; /* Dynamic max number of tables */ -int krt_max_tables; +uint krt_max_tables; #ifdef KRT_USE_SYSCTL_NET_FIBS -static int +static uint krt_get_max_tables(void) { int fibs; @@ -90,7 +90,11 @@ krt_get_max_tables(void) return 1; } - return MIN(fibs, KRT_MAX_TABLES); + /* Should not happen */ + if (fibs < 1) + return 1; + + return (uint) MIN(fibs, KRT_MAX_TABLES); } #else diff --git a/sysdep/bsd/krt-sys.h b/sysdep/bsd/krt-sys.h index ed667e80..aa6cc72e 100644 --- a/sysdep/bsd/krt-sys.h +++ b/sysdep/bsd/krt-sys.h @@ -31,7 +31,7 @@ static inline void kif_sys_copy_config(struct kif_config *d UNUSED, struct kif_c /* Kernel routes */ -extern int krt_max_tables; +extern uint krt_max_tables; struct krt_params { int table_id; /* Kernel table ID we sync with */