Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
b52d042
fix(ping): ping IPv6 devices with ICMPv6 echo requests
somethingwithproof Aug 30, 2026
33bbe5c
fix(ping): use unprivileged ICMP sockets when the kernel allows them
somethingwithproof Aug 31, 2026
bef6689
test(fuzz): restore the ICMP reply target and cover the datagram clas…
somethingwithproof Aug 31, 2026
9846bb2
fix: give ping_icmp one owner for its packet and socket
somethingwithproof Sep 3, 2026
46c2392
test: cover ping_icmp, including the exit that leaked
somethingwithproof Sep 3, 2026
ad0cce8
fix: release LOCK_SETEUID between ICMP socket attempts
somethingwithproof Sep 3, 2026
7aefb8f
fix: leave hostinfo alone when getaddrinfo() fails
somethingwithproof Sep 3, 2026
ba8fd6b
test: use the platform ICMP unreachable spelling
somethingwithproof Sep 6, 2026
a9933d9
test(icmp): make cleanup coverage deterministic
somethingwithproof Sep 6, 2026
76a151d
fix(icmp): pair capability elevation decisions
somethingwithproof Sep 6, 2026
12307f8
test(icmp): isolate resolver and descriptor behavior
somethingwithproof Sep 6, 2026
2ded111
docs(icmp): record capability cleanup behavior
somethingwithproof Sep 6, 2026
0729c79
test(icmp): remove live network dependencies
somethingwithproof Sep 6, 2026
2c863ba
fix(icmp): reevaluate capabilities for each retry
somethingwithproof Sep 6, 2026
3241de4
fix(icmp): serialize capability decisions
somethingwithproof Sep 6, 2026
719a6b2
fix(icmp): cache capability mode at startup
somethingwithproof Sep 6, 2026
9859f28
fix(icmp): describe capability fallback accurately
somethingwithproof Sep 6, 2026
8ed4869
fix(icmp): apply retry safety to IPv6 sockets
somethingwithproof Sep 6, 2026
b06dd8e
test(icmp): cover datagram reply ownership
somethingwithproof Sep 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ The Cacti Group | spine
-issue#552: Terminate die() output so consecutive fatal messages no longer run together
-issue#561: Reserve room for the terminator in php_readpipe() so a full script server result cannot write past result_string
-issue#562: Escalate PHP script server shutdown to SIGKILL after a bounded grace period so a stuck child is not orphaned
-issue#593: Release the ICMP packet and socket through one cleanup path, including the FD_SETSIZE exit
-issue#597: Pair one capability decision with each raw-socket lock/elevation block and release LOCK_SETEUID before retrying
-issue#597: Release Linux capability handles on every probe path and log an absent optional CAP_NET_RAW capability as a warning
-issue#611: Leave hostinfo untouched when getaddrinfo() fails in init_sockaddr()
-issue: Correct signed and unsigned printf format specifiers in poller.c, free session.localname on the unknown-version return in snmp.c, and quote shell variables in the build scripts
-issue: Escape the SNMP result and RRD name before the poller_output INSERT, bound the buffer_output_errors write to the space left in error_string, and validate the --hostlist argument before it reaches SQL
-issue: Restore the twelve headers and spine.conf.dist missing from the dist tarball so a release tarball can be compiled from
Expand Down
6 changes: 5 additions & 1 deletion Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ check_PROGRAMS += \
tests/unit/test_util_strings \
tests/unit/test_build_fixes \
tests/unit/test_safety_fixes \
tests/unit/test_linked
tests/unit/test_linked \
tests/unit/test_ping_icmp
endif

# test_util_strings pulls in common.h and the sources under test, so it needs
Expand All @@ -86,4 +87,7 @@ tests_unit_test_linked_SOURCES = tests/unit/test_linked.c tests/fuzz/stubs.c \
sql.c util.c snmp.c locks.c poller.c nft_popen.c php.c ping.c keywords.c error.c
tests_unit_test_linked_LDADD = $(CMOCKA_LIBS) $(LIBS)

tests_unit_test_ping_icmp_SOURCES = tests/unit/test_ping_icmp.c tests/fuzz/stubs.c \
sql.c util.c snmp.c locks.c poller.c nft_popen.c php.c keywords.c error.c
tests_unit_test_ping_icmp_LDADD = $(CMOCKA_LIBS) $(LIBS)
TESTS = $(check_PROGRAMS)
8 changes: 8 additions & 0 deletions common.h
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,14 @@
# include <netinet/ip_icmp.h>
#endif

#if HAVE_NET_IF_H
# include <net/if.h>
#endif

#if HAVE_IFADDRS_H
# include <ifaddrs.h>
#endif

#if HAVE_SYS_TIME_H
# include <sys/time.h>
#endif
Expand Down
3 changes: 2 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ AC_SEARCH_LIBS([clock_gettime], [rt pthread])
AC_CHECK_HEADERS(sys/socket.h sys/select.h sys/wait.h sys/time.h)
AC_CHECK_HEADERS(assert.h ctype.h errno.h signal.h math.h malloc.h netdb.h)
AC_CHECK_HEADERS(signal.h stdarg.h stdio.h syslog.h)
AC_CHECK_HEADERS(ifaddrs.h net/if.h)
AC_CHECK_HEADERS(
netinet/in_systm.h netinet/in.h netinet/ip.h netinet/ip_icmp.h,
[],
Expand All @@ -155,7 +156,7 @@ AC_CHECK_TYPES([unsigned long long, long long])
AC_TYPE_SIZE_T

# Checks for library functions.
AC_CHECK_FUNCS(malloc calloc gettimeofday strerror strtoll)
AC_CHECK_FUNCS(malloc calloc gettimeofday strerror strtoll getifaddrs if_nametoindex)

# ****************** Solaris Privileges Check ***********************

Expand Down
Loading
Loading