Use a static pkt_ptr buffer instead of allocating it dynamically.
authorclaudio <claudio@openbsd.org>
Tue, 19 Jan 2021 09:29:49 +0000 (09:29 +0000)
committerclaudio <claudio@openbsd.org>
Tue, 19 Jan 2021 09:29:49 +0000 (09:29 +0000)
Removes another -fno-common issue from the build.

usr.sbin/ospfd/ospfe.c
usr.sbin/ospfd/ospfe.h
usr.sbin/ospfd/packet.c

index 9e04400..9fca2e0 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: ospfe.c,v 1.107 2020/11/02 00:29:58 dlg Exp $ */
+/*     $OpenBSD: ospfe.c,v 1.108 2021/01/19 09:29:49 claudio Exp $ */
 
 /*
  * Copyright (c) 2005 Claudio Jeker <claudio@openbsd.org>
@@ -185,9 +185,6 @@ ospfe(struct ospfd_conf *xconf, int pipe_parent2ospfe[2], int pipe_ospfe2rde[2],
                }
        }
 
-       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);
@@ -240,7 +237,6 @@ ospfe_shutdown(void)
        free(iev_rde);
        free(iev_main);
        free(oeconf);
-       free(pkt_ptr);
 
        log_info("ospf engine exiting");
        _exit(0);
index 303735a..0e003eb 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: ospfe.h,v 1.46 2014/10/25 03:23:49 lteo Exp $ */
+/*     $OpenBSD: ospfe.h,v 1.47 2021/01/19 09:29:49 claudio Exp $ */
 
 /*
  * Copyright (c) 2004, 2005 Esben Norby <norby@openbsd.org>
@@ -238,6 +238,4 @@ int  gen_ospf_hdr(struct ibuf *, struct iface *, u_int8_t);
 int     send_packet(struct iface *, struct ibuf *, struct sockaddr_in *);
 void    recv_packet(int, short, void *);
 
-char   *pkt_ptr;       /* packet buffer */
-
 #endif /* _OSPFE_H_ */
index 7f1e2de..0423320 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: packet.c,v 1.33 2019/08/12 20:32:39 remi Exp $ */
+/*     $OpenBSD: packet.c,v 1.34 2021/01/19 09:29:49 claudio Exp $ */
 
 /*
  * Copyright (c) 2004, 2005 Esben Norby <norby@openbsd.org>
@@ -107,6 +107,7 @@ send_packet(struct iface *iface, struct ibuf *buf, struct sockaddr_in *dst)
 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 sockaddr_dl))];