]> git.puffer.fish Git - mirror/frr.git/commitdiff
zebra: Fix zebra to exit on recvmsg buffer overrun
authorDonald Sharp <sharpd@cumulusnetworks.com>
Mon, 23 May 2016 21:22:24 +0000 (17:22 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 10 Jun 2016 15:18:58 +0000 (11:18 -0400)
When zebra receives a recvmsg buffer from the kernel
silently exit so that watchquagga will notice and then
restart zebra.

Ticket: CM-11130
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
zebra/rt_netlink.c

index 251b55c0c6d49011d639d1839f67b678ce88f2e9..b0e680b7a98bee2eb44d6e1e238f2793067f2f2b 100644 (file)
@@ -327,6 +327,12 @@ netlink_parse_info (int (*filter) (struct sockaddr_nl *, struct nlmsghdr *,
             break;
           zlog (NULL, LOG_ERR, "%s recvmsg overrun: %s",
                nl->name, safe_strerror(errno));
+          /*
+           *  In this case we are screwed.
+           *  There is no good way to
+           *  recover zebra at this point.
+           */
+          exit (-1);
           continue;
         }