git: c9febea3dc8a - main - icmp: improve INVARIANTS check

From: Michael Tuexen <tuexen_at_FreeBSD.org>
Date: Thu, 12 Dec 2024 14:45:10 UTC
The branch main has been updated by tuexen:

URL: https://cgit.FreeBSD.org/src/commit/?id=c9febea3dc8ac8e308e8fc5a2e74dd0313fdc5d2

commit c9febea3dc8ac8e308e8fc5a2e74dd0313fdc5d2
Author:     Michael Tuexen <tuexen@FreeBSD.org>
AuthorDate: 2024-12-12 14:40:49 +0000
Commit:     Michael Tuexen <tuexen@FreeBSD.org>
CommitDate: 2024-12-12 14:40:49 +0000

    icmp: improve INVARIANTS check
    
    Actually check the conditions that are enforced by the error checking
    code instead of a condition which is
    * checking a number to be non-negative instead of positive
    * depending on a random number
    Perform the checks consistently for ICMPv4 and ICMPv6.
    
    Reviewed by:            glebius, rrs, cc
    MFC after:              1 week
    Sponsored by:           Netflix, Inc.
    Differential Revision:  https://reviews.freebsd.org/D48001
---
 sys/netinet/ip_icmp.c | 2 +-
 sys/netinet6/icmp6.c  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys/netinet/ip_icmp.c b/sys/netinet/ip_icmp.c
index 1149796c0db3..58484e532fef 100644
--- a/sys/netinet/ip_icmp.c
+++ b/sys/netinet/ip_icmp.c
@@ -1148,7 +1148,7 @@ sysctl_icmplim_and_jitter(SYSCTL_HANDLER_ARGS)
 			}
 		}
 	}
-	MPASS(V_icmplim + V_icmplim_curr_jitter >= 0);
+	MPASS(V_icmplim == 0 || V_icmplim > V_icmplim_jitter);
 
 	return (error);
 }
diff --git a/sys/netinet6/icmp6.c b/sys/netinet6/icmp6.c
index e0f642544327..d1c2f2c85142 100644
--- a/sys/netinet6/icmp6.c
+++ b/sys/netinet6/icmp6.c
@@ -2817,7 +2817,7 @@ sysctl_icmp6lim_and_jitter(SYSCTL_HANDLER_ARGS)
 			}
 		}
 	}
-	MPASS(V_icmp6errppslim + V_icmp6lim_curr_jitter >= 0);
+	MPASS(V_icmp6errppslim == 0 || V_icmp6errppslim > V_icmp6lim_jitter);
 
 	return (error);
 }