Like in ospfd make the pkt_ptr a local static buffer.
authorclaudio <claudio@openbsd.org>
Tue, 19 Jan 2021 10:02:22 +0000 (10:02 +0000)
committerclaudio <claudio@openbsd.org>
Tue, 19 Jan 2021 10:02:22 +0000 (10:02 +0000)
usr.sbin/ripd/packet.c
usr.sbin/ripd/ripe.c
usr.sbin/ripd/ripe.h

index 01a4a3d..cc10965 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: packet.c,v 1.13 2016/12/23 14:53:16 jca Exp $ */
+/*     $OpenBSD: packet.c,v 1.14 2021/01/19 10:02:22 claudio Exp $ */
 
 /*
  * Copyright (c) 2006 Michele Marchetto <mydecay@openbeer.it>
@@ -78,6 +78,7 @@ send_packet(struct iface *iface, void *pkt, size_t len, struct sockaddr_in *dst)
 void
 recv_packet(int fd, short event, void *bula)
 {
+       static char pkt_ptr[IBUF_READ_SIZE];
        union {
                struct cmsghdr hdr;
                char    buf[CMSG_SPACE(sizeof(struct sockaddr_dl))];
index 58aae5c..d49f87f 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: ripe.c,v 1.26 2021/01/19 10:00:36 claudio Exp $ */
+/*     $OpenBSD: ripe.c,v 1.27 2021/01/19 10:02:22 claudio Exp $ */
 
 /*
  * Copyright (c) 2006 Michele Marchetto <mydecay@openbeer.it>
@@ -184,9 +184,6 @@ ripe(struct ripd_conf *xconf, int pipe_parent2ripe[2], int pipe_ripe2rde[2],
        /* listen on ripd control socket */
        control_listen();
 
-       if ((pkt_ptr = calloc(1, IBUF_READ_SIZE)) == NULL)
-               fatal("ripe");
-
        /* start interfaces */
        LIST_FOREACH(iface, &xconf->iface_list, entry) {
                if_init(xconf, iface);
@@ -483,7 +480,6 @@ ripe_shutdown(void)
        free(iev_rde);
        free(iev_main);
        free(oeconf);
-       free(pkt_ptr);
 
        log_info("rip engine exiting");
        _exit(0);
index 0adfc0b..860c3d9 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: ripe.h,v 1.13 2021/01/19 10:00:36 claudio Exp $ */
+/*     $OpenBSD: ripe.h,v 1.14 2021/01/19 10:02:22 claudio Exp $ */
 
 /*
  * Copyright (c) 2006 Michele Marchetto <mydecay@openbeer.it>
@@ -25,8 +25,6 @@
 #include <netinet/in.h>
 #include <netinet/ip.h>
 
-u_int8_t       *pkt_ptr;
-
 /* neighbor events */
 enum nbr_event {
        NBR_EVT_RESPONSE_RCVD,