]> git.proxmox.com Git - mirror_frr.git/blobdiff - babeld/message.c
babeld: fix #11808 to avoid infinite loops
[mirror_frr.git] / babeld / message.c
index 687f76844694d60775efd26eb62449755221e64a..b5c2a589848f97eab66d45686d6d50fc668f9062 100644 (file)
@@ -422,7 +422,7 @@ parse_packet(const unsigned char *from, struct interface *ifp,
                        debugf(BABEL_DEBUG_COMMON,
                               "Received Hello from %s on %s that does not have all 0's in the unused section of flags, ignoring",
                               format_address(from), ifp->name);
-                       continue;
+                       goto done;
                }
 
                /*
@@ -434,7 +434,7 @@ parse_packet(const unsigned char *from, struct interface *ifp,
                        debugf(BABEL_DEBUG_COMMON,
                               "Received Unicast Hello from %s on %s that FRR is not prepared to understand yet",
                               format_address(from), ifp->name);
-                       continue;
+                       goto done;
                }
 
                DO_NTOHS(seqno, message + 4);
@@ -452,7 +452,7 @@ parse_packet(const unsigned char *from, struct interface *ifp,
                        debugf(BABEL_DEBUG_COMMON,
                               "Received hello from %s on %s should be ignored as that this version of FRR does not know how to properly handle interval == 0",
                               format_address(from), ifp->name);
-                       continue;
+                       goto done;
                }
 
                changed = update_neighbour(neigh, seqno, interval);