Like in ospfd use a static pkt_ptr buffer.
authorclaudio <claudio@openbsd.org>
Tue, 19 Jan 2021 09:43:40 +0000 (09:43 +0000)
committerclaudio <claudio@openbsd.org>
Tue, 19 Jan 2021 09:43:40 +0000 (09:43 +0000)
usr.sbin/ospf6d/ospfe.c
usr.sbin/ospf6d/ospfe.h
usr.sbin/ospf6d/packet.c

index 69f91d0..7fd8675 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: ospfe.c,v 1.64 2021/01/19 09:42:11 claudio Exp $ */
+/*     $OpenBSD: ospfe.c,v 1.65 2021/01/19 09:43:40 claudio Exp $ */
 
 /*
  * Copyright (c) 2005 Claudio Jeker <claudio@openbsd.org>
@@ -174,9 +174,6 @@ ospfe(struct ospfd_conf *xconf, int pipe_parent2ospfe[2], int pipe_ospfe2rde[2],
        /* remove unneeded config stuff */
        conf_clear_redist_list(&oeconf->redist_list);
 
-       if ((pkt_ptr = calloc(1, READ_BUF_SIZE)) == NULL)
-               fatal("ospfe");
-
        /* start interfaces */
        LIST_FOREACH(area, &oeconf->area_list, entry) {
                ospfe_demote_area(area, 0);
@@ -223,7 +220,6 @@ ospfe_shutdown(void)
        free(iev_rde);
        free(iev_main);
        free(oeconf);
-       free(pkt_ptr);
 
        log_info("ospf engine exiting");
        _exit(0);
index ec46bdc..7fec5f8 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: ospfe.h,v 1.24 2021/01/19 09:42:11 claudio Exp $ */
+/*     $OpenBSD: ospfe.h,v 1.25 2021/01/19 09:43:40 claudio Exp $ */
 
 /*
  * Copyright (c) 2004, 2005 Esben Norby <norby@openbsd.org>
@@ -231,6 +231,4 @@ int  upd_ospf_hdr(struct ibuf *, struct iface *);
 int     send_packet(struct iface *, struct ibuf *, struct in6_addr *);
 void    recv_packet(int, short, void *);
 
-char   *pkt_ptr;       /* packet buffer */
-
 #endif /* _OSPFE_H_ */
index 6d36534..efbf891 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: packet.c,v 1.18 2021/01/12 09:54:44 claudio Exp $ */
+/*     $OpenBSD: packet.c,v 1.19 2021/01/19 09:43:40 claudio Exp $ */
 
 /*
  * Copyright (c) 2004, 2005 Esben Norby <norby@openbsd.org>
@@ -114,6 +114,7 @@ send_packet(struct iface *iface, struct ibuf *buf,
 void
 recv_packet(int fd, short event, void *bula)
 {
+       static char pkt_ptr[READ_BUF_SIZE];
        union {
                struct cmsghdr hdr;
                char    buf[CMSG_SPACE(sizeof(struct in6_pktinfo))];