[Bug 258849] IPSec may generate duplicate SPIs
Date: Fri, 01 Oct 2021 22:29:31 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258849
Bug ID: 258849
Summary: IPSec may generate duplicate SPIs
Product: Base System
Version: CURRENT
Hardware: Any
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: kern
Assignee: bugs@FreeBSD.org
Reporter: Herbie.Robinson@stratus.com
In key_do_getnewspi in key.c:
/* when requesting to allocate spi ranged */
while (count--) {
/* generate pseudo-random SPI value ranged. */
newspi = min + (key_random() % (max - min + 1));
if (!key_checkspidup(htonl(newspi)))
break;
}
if (count == 0 || newspi == 0) {
ipseclog((LOG_DEBUG,
"%s: failed to allocate SPI.\n", __func__));
return 0;
}
If I am not mistaken, the loop exit in the failure case will leave "count" at
-1 (it's post-decrement), not zero.
--
You are receiving this mail because:
You are the assignee for the bug.