svn commit: r361108 - stable/12/sys/kern
Konstantin Belousov
kib at FreeBSD.org
Sat May 16 09:03:18 UTC 2020
Author: kib
Date: Sat May 16 09:03:18 2020
New Revision: 361108
URL: https://svnweb.freebsd.org/changeset/base/361108
Log:
MFC r360845:
Avoid spurious ENOMEMs from sysctl hw.pagesizes.
PR: 246215
Modified:
stable/12/sys/kern/kern_mib.c
Directory Properties:
stable/12/ (props changed)
Modified: stable/12/sys/kern/kern_mib.c
==============================================================================
--- stable/12/sys/kern/kern_mib.c Sat May 16 06:09:24 2020 (r361107)
+++ stable/12/sys/kern/kern_mib.c Sat May 16 09:03:18 2020 (r361108)
@@ -233,6 +233,7 @@ static int
sysctl_hw_pagesizes(SYSCTL_HANDLER_ARGS)
{
int error;
+ size_t len;
#ifdef SCTL_MASK32
int i;
uint32_t pagesizes32[MAXPAGESIZES];
@@ -245,10 +246,18 @@ sysctl_hw_pagesizes(SYSCTL_HANDLER_ARGS)
for (i = 0; i < MAXPAGESIZES; i++)
pagesizes32[i] = (uint32_t)pagesizes[i];
- error = SYSCTL_OUT(req, pagesizes32, sizeof(pagesizes32));
+ len = sizeof(pagesizes32);
+ if (len > req->oldlen)
+ len = req->oldlen;
+ error = SYSCTL_OUT(req, pagesizes32, len);
} else
#endif
- error = SYSCTL_OUT(req, pagesizes, sizeof(pagesizes));
+ {
+ len = sizeof(pagesizes);
+ if (len > req->oldlen)
+ len = req->oldlen;
+ error = SYSCTL_OUT(req, pagesizes, len);
+ }
return (error);
}
SYSCTL_PROC(_hw, OID_AUTO, pagesizes, CTLTYPE_ULONG | CTLFLAG_RD,
More information about the svn-src-stable
mailing list