From 3288ffdd2f6eed644e9f0966cf8cfa61e9e417e1 Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Wed, 2 Feb 2022 13:30:52 +0200 Subject: bgpd: Pass struct pfx_record to sizeof Passing argument "&rec" of type "struct pfx_record *" and argument "1UL" to function "read" is suspicious because "sizeof (struct pfx_record) /*40*/" is expected. Signed-off-by: Donatas Abraitis --- bgpd/bgp_rpki.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bgpd/bgp_rpki.c b/bgpd/bgp_rpki.c index f1ee1c9ad7..bd5a5b1ffa 100644 --- a/bgpd/bgp_rpki.c +++ b/bgpd/bgp_rpki.c @@ -369,7 +369,7 @@ static int bgpd_sync_callback(struct thread *thread) thread_add_read(bm->master, bgpd_sync_callback, NULL, socket, &t_rpki); if (atomic_load_explicit(&rtr_update_overflow, memory_order_seq_cst)) { - while (read(socket, &rec, sizeof(rec) != -1)) + while (read(socket, &rec, sizeof(struct pfx_record) != -1)) ; atomic_store_explicit(&rtr_update_overflow, 0, @@ -378,8 +378,8 @@ static int bgpd_sync_callback(struct thread *thread) return 0; } - retval = read(socket, &rec, sizeof(rec)); - if (retval != sizeof(rec)) { + retval = read(socket, &rec, sizeof(struct pfx_record)); + if (retval != sizeof(struct pfx_record)) { RPKI_DEBUG("Could not read from socket"); return retval; } -- cgit v1.2.3 From b4fc876a327a89dc212efa48a04b76e53263722f Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Fri, 4 Mar 2022 23:36:34 +0200 Subject: bgpd: Fix while(read()) for RPKI sync callback Bad formatting applied and it worked with small amount of prefixes (lurking). With full BGP feed and full RPKI table, this causes infinity loop. Signed-off-by: Donatas Abraitis --- bgpd/bgp_rpki.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bgpd/bgp_rpki.c b/bgpd/bgp_rpki.c index bd5a5b1ffa..0a51269d9b 100644 --- a/bgpd/bgp_rpki.c +++ b/bgpd/bgp_rpki.c @@ -369,7 +369,7 @@ static int bgpd_sync_callback(struct thread *thread) thread_add_read(bm->master, bgpd_sync_callback, NULL, socket, &t_rpki); if (atomic_load_explicit(&rtr_update_overflow, memory_order_seq_cst)) { - while (read(socket, &rec, sizeof(struct pfx_record) != -1)) + while (read(socket, &rec, sizeof(struct pfx_record)) != -1) ; atomic_store_explicit(&rtr_update_overflow, 0, -- cgit v1.2.3