summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/dtrace/dtrace.c
diff options
context:
space:
mode:
authorBryan Cantrill <bryan@joyent.com>2016-03-03 00:17:09 +0000
committerRobert Mustacchi <rm@joyent.com>2016-03-12 21:21:54 -0800
commitd65f2bb4e50559c6c375a2aa9f728cbc34379015 (patch)
treed05e0f994ade5287faa8ccadfb0bb94df0d6df24 /usr/src/uts/common/dtrace/dtrace.c
parentbf75909a55b2efbe96ab2fe820866fc77fab58c9 (diff)
downloadillumos-joyent-d65f2bb4e50559c6c375a2aa9f728cbc34379015.tar.gz
6734 dtrace_canstore_statvar() fails for some valid static variables
Reviewed by: Dan McDonald <danmcd@omniti.com> Approved by: Richard Lowe <richlowe@richlowe.net>
Diffstat (limited to 'usr/src/uts/common/dtrace/dtrace.c')
-rw-r--r--usr/src/uts/common/dtrace/dtrace.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/usr/src/uts/common/dtrace/dtrace.c b/usr/src/uts/common/dtrace/dtrace.c
index 266c55fb76..5243f0c982 100644
--- a/usr/src/uts/common/dtrace/dtrace.c
+++ b/usr/src/uts/common/dtrace/dtrace.c
@@ -599,8 +599,8 @@ dtrace_canstore_statvar(uint64_t addr, size_t sz,
if (nsvars == 0)
return (0);
- maxglobalsize = dtrace_statvar_maxsize;
- maxlocalsize = (maxglobalsize + sizeof (uint64_t)) * NCPU;
+ maxglobalsize = dtrace_statvar_maxsize + sizeof (uint64_t);
+ maxlocalsize = maxglobalsize * NCPU;
for (i = 0; i < nsvars; i++) {
dtrace_statvar_t *svar = svars[i];
@@ -618,8 +618,8 @@ dtrace_canstore_statvar(uint64_t addr, size_t sz,
* DTrace to escalate an orthogonal kernel heap corruption bug
* into the ability to store to arbitrary locations in memory.
*/
- VERIFY((scope == DIFV_SCOPE_GLOBAL && size < maxglobalsize) ||
- (scope == DIFV_SCOPE_LOCAL && size < maxlocalsize));
+ VERIFY((scope == DIFV_SCOPE_GLOBAL && size <= maxglobalsize) ||
+ (scope == DIFV_SCOPE_LOCAL && size <= maxlocalsize));
if (DTRACE_INRANGE(addr, sz, svar->dtsv_data, svar->dtsv_size))
return (1);