blob: 4a8a7e1afdd86fb074ed544d7c3ebd24fbfef1ac [file] [log] [blame]
Andrew Geissler5082cc72023-09-11 08:41:39 -04001From e61593f2ded104c4c7f01eb93e2b404e93e0c560 Mon Sep 17 00:00:00 2001
2From: harryreps <harryreps@gmail.com>
3Date: Fri, 3 Mar 2023 23:17:14 +0000
4Subject: [PATCH] babeld: fix #11808 to avoid infinite loops
5
6Replacing continue in loops to goto done so that index of packet buffer
7increases.
8
9Signed-off-by: harryreps <harryreps@gmail.com>
10
11CVE: CVE-2023-3748
12
13Upstream-Status: Backport
14[https://github.com/FRRouting/frr/commit/ae1e0e1fed77716bc06f181ad68c4433fb5523d0]
15
16Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
17---
18 babeld/message.c | 6 +++---
19 1 file changed, 3 insertions(+), 3 deletions(-)
20
21diff --git a/babeld/message.c b/babeld/message.c
22index 7d45d91bf..2bf233796 100644
23--- a/babeld/message.c
24+++ b/babeld/message.c
25@@ -439,7 +439,7 @@ parse_packet(const unsigned char *from, struct interface *ifp,
26 debugf(BABEL_DEBUG_COMMON,
27 "Received Hello from %s on %s that does not have all 0's in the unused section of flags, ignoring",
28 format_address(from), ifp->name);
29- continue;
30+ goto done;
31 }
32
33 /*
34@@ -451,7 +451,7 @@ parse_packet(const unsigned char *from, struct interface *ifp,
35 debugf(BABEL_DEBUG_COMMON,
36 "Received Unicast Hello from %s on %s that FRR is not prepared to understand yet",
37 format_address(from), ifp->name);
38- continue;
39+ goto done;
40 }
41
42 DO_NTOHS(seqno, message + 4);
43@@ -469,7 +469,7 @@ parse_packet(const unsigned char *from, struct interface *ifp,
44 debugf(BABEL_DEBUG_COMMON,
45 "Received hello from %s on %s should be ignored as that this version of FRR does not know how to properly handle interval == 0",
46 format_address(from), ifp->name);
47- continue;
48+ goto done;
49 }
50
51 changed = update_neighbour(neigh, seqno, interval);
52--
532.25.1
54