]> 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>
Mon, 23 May 2016 22:37:06 +0000 (18:37 -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 50a269dbc6aefdd237cad33786d88cc10e333bb8..e52fcd43428cfd96054b5e6f12a6866ec3096f70 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;
         }