diff options
| author | Bryan Cantrill <bryan@joyent.com> | 2016-03-03 00:17:09 +0000 |
|---|---|---|
| committer | Robert Mustacchi <rm@joyent.com> | 2016-03-12 21:21:54 -0800 |
| commit | d65f2bb4e50559c6c375a2aa9f728cbc34379015 (patch) | |
| tree | d05e0f994ade5287faa8ccadfb0bb94df0d6df24 /usr/src/uts/common/dtrace/dtrace.c | |
| parent | bf75909a55b2efbe96ab2fe820866fc77fab58c9 (diff) | |
| download | illumos-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.c | 8 |
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); |
