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,
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"