Like in ospfd use a static pkt_ptr buffer
authorclaudio <claudio@openbsd.org>
Tue, 19 Jan 2021 10:31:12 +0000 (10:31 +0000)
committerclaudio <claudio@openbsd.org>
Tue, 19 Jan 2021 10:31:12 +0000 (10:31 +0000)
usr.sbin/eigrpd/eigrpe.c
usr.sbin/eigrpd/eigrpe.h
usr.sbin/eigrpd/packet.c

index e22e7c7..63f5321 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: eigrpe.c,v 1.36 2018/08/05 08:10:35 mestre Exp $ */
+/*     $OpenBSD: eigrpe.c,v 1.37 2021/01/19 10:31:12 claudio Exp $ */
 
 /*
  * Copyright (c) 2015 Renato Westphal <renato@openbsd.org>
@@ -167,9 +167,6 @@ eigrpe(int debug, int verbose, char *sockname)
        TAILQ_INIT(&ctl_conns);
        control_listen();
 
-       if ((pkt_ptr = calloc(1, READ_BUF_SIZE)) == NULL)
-               fatal("eigrpe");
-
        event_dispatch();
 
        eigrpe_shutdown();
@@ -196,7 +193,6 @@ eigrpe_shutdown(void)
        /* clean up */
        free(iev_rde);
        free(iev_main);
-       free(pkt_ptr);
 
        log_info("eigrp engine exiting");
        exit(0);
index f2825d3..2d0198b 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: eigrpe.h,v 1.16 2017/02/22 14:24:50 renato Exp $ */
+/*     $OpenBSD: eigrpe.h,v 1.17 2021/01/19 10:31:12 claudio Exp $ */
 
 /*
  * Copyright (c) 2015 Renato Westphal <renato@openbsd.org>
@@ -180,6 +180,4 @@ void         recv_query(struct nbr *, struct rinfo_head *, int);
 void    send_reply(struct nbr *, struct rinfo_head *, int);
 void    recv_reply(struct nbr *, struct rinfo_head *, int);
 
-char   *pkt_ptr;       /* packet buffer */
-
 #endif /* _EIGRPE_H_ */
index 519dba6..193e4aa 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: packet.c,v 1.18 2016/09/02 16:44:33 renato Exp $ */
+/*     $OpenBSD: packet.c,v 1.19 2021/01/19 10:31:12 claudio Exp $ */
 
 /*
  * Copyright (c) 2015 Renato Westphal <renato@openbsd.org>
@@ -467,6 +467,7 @@ error:
 void
 recv_packet(int fd, short event, void *bula)
 {
+       static char pkt_ptr[READ_BUF_SIZE];
        union {
                struct  cmsghdr hdr;
                char    buf[CMSG_SPACE(CMSG_MAXLEN)];