svn commit: r361109 - stable/11/sys/kern
Konstantin Belousov
kib at FreeBSD.org
Sat May 16 09:40:18 UTC 2020
Author: kib
Date: Sat May 16 09:40:17 2020
New Revision: 361109
URL: https://svnweb.freebsd.org/changeset/base/361109
Log:
MFC r360845:
Avoid spurious ENOMEMs from sysctl hw.pagesizes.
PR: 246215
Modified:
stable/11/sys/kern/kern_mib.c
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/sys/kern/kern_mib.c
==============================================================================
--- stable/11/sys/kern/kern_mib.c Sat May 16 09:03:18 2020 (r361108)
+++ stable/11/sys/kern/kern_mib.c Sat May 16 09:40:17 2020 (r361109)
@@ -228,6 +228,7 @@ static int
sysctl_hw_pagesizes(SYSCTL_HANDLER_ARGS)
{
int error;
+ size_t len;
#ifdef SCTL_MASK32
int i;
uint32_t pagesizes32[MAXPAGESIZES];
@@ -240,10 +241,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