Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Jun 2022 00:46:55 GMT
From:      Craig Leres <leres@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 65d71ce9bdd9 - main - net/fping: Avoid ident collisions
Message-ID:  <202206020046.2520kt7D072528@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by leres:

URL: https://cgit.FreeBSD.org/ports/commit/?id=65d71ce9bdd96d79b5c9cffafc144fe23ebf6b15

commit 65d71ce9bdd96d79b5c9cffafc144fe23ebf6b15
Author:     Craig Leres <leres@FreeBSD.org>
AuthorDate: 2022-06-02 00:46:21 +0000
Commit:     Craig Leres <leres@FreeBSD.org>
CommitDate: 2022-06-02 00:46:21 +0000

    net/fping: Avoid ident collisions
    
    fping derives the ident it puts in the outbound packet to from the
    low 16 bits of the process id. This means a busy nagios server can
    see collisions. More details on this issue and a patch to solve it
    here:
    
        https://github.com/schweikert/fping/issues/206
    
    Apply the patch from the github issue:
    
    PR:             264402
    Reported by:    Case Larsen
    Approved by:    jharris (maintainer)
---
 net/fping/Makefile            |  2 +-
 net/fping/files/patch-fping.c | 23 +++++++++++++++++++++++
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/net/fping/Makefile b/net/fping/Makefile
index af42b27bf518..1a3c2d858d24 100644
--- a/net/fping/Makefile
+++ b/net/fping/Makefile
@@ -2,7 +2,7 @@
 
 PORTNAME=	fping
 PORTVERSION=	5.0
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	net
 MASTER_SITES=	http://fping.org/dist/ \
 		https://github.com/schweikert/${PORTNAME}/releases/download/v${PORTVERSION}/
diff --git a/net/fping/files/patch-fping.c b/net/fping/files/patch-fping.c
index 054f171fad67..e8b5343c04ba 100644
--- a/net/fping/files/patch-fping.c
+++ b/net/fping/files/patch-fping.c
@@ -14,3 +14,26 @@
          socket_set_src_addr_ipv6(socket6, &src_addr6, (socktype6 == SOCK_DGRAM) ? &ident6 : NULL);
      }
  #endif
+@@ -2299,6 +2299,22 @@ int wait_for_reply(int64_t wait_time)
+ #endif
+     else {
+         return 1;
++    }
++
++    /* Check that src address is one of the hosts we pinged before */
++    int found = 0;
++    for (int i = 0; i < num_hosts; i++) {
++        HOST_ENTRY *h = table[i];
++        if (!addr_cmp((struct sockaddr*)&response_addr, (struct sockaddr*)&h->saddr)) {
++            found = 1;
++            break;
++        }
++    }
++    if (!found) {
++        // char buf[INET6_ADDRSTRLEN];
++        // getnameinfo((struct sockaddr*)&response_addr, sizeof(response_addr), buf, INET6_ADDRSTRLEN, NULL, 0, NI_NUMERICHOST);
++        // fprintf(stderr, "ignoring response from %s\n", buf);
++        return 1; /* packet received, but not from a host we pinged */        
+     }
+ 
+     seqmap_value = seqmap_fetch(seq, current_time_ns);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202206020046.2520kt7D072528>