svn commit: r298321 - head/sys/x86/acpica
Conrad E. Meyer
cem at FreeBSD.org
Wed Apr 20 01:10:08 UTC 2016
Author: cem
Date: Wed Apr 20 01:10:07 2016
New Revision: 298321
URL: https://svnweb.freebsd.org/changeset/base/298321
Log:
SRAT: Don't overflow domain_pxm table
If we reached MAXMEMDOM, we would previously try to insert an additional
element and only detect overflow after causing (probably trivial) memory
overflow. Instead, detect the ndomain > MAXMEMDOM case before we write past
the end.
Reported by: Coverity
CID: 1354783
Sponsored by: EMC / Isilon Storage Division
Modified:
head/sys/x86/acpica/srat.c
Modified: head/sys/x86/acpica/srat.c
==============================================================================
--- head/sys/x86/acpica/srat.c Wed Apr 20 01:05:54 2016 (r298320)
+++ head/sys/x86/acpica/srat.c Wed Apr 20 01:10:07 2016 (r298321)
@@ -355,17 +355,18 @@ renumber_domains(void)
if (j < ndomain && domain_pxm[j] == mem_info[i].domain)
continue;
+ if (ndomain >= MAXMEMDOM) {
+ ndomain = 1;
+ printf("SRAT: Too many memory domains\n");
+ return (EFBIG);
+ }
+
/* Insert the new domain at slot 'j'. */
slot = j;
for (j = ndomain; j > slot; j--)
domain_pxm[j] = domain_pxm[j - 1];
domain_pxm[slot] = mem_info[i].domain;
ndomain++;
- if (ndomain > MAXMEMDOM) {
- ndomain = 1;
- printf("SRAT: Too many memory domains\n");
- return (EFBIG);
- }
}
/* Renumber each domain to its index in the sorted 'domain_pxm' list. */
More information about the svn-src-head
mailing list