diff options
author | Igor Nabirushkin <inabirushkin@nvidia.com> | 2013-08-05 20:34:13 +0400 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2013-09-16 17:40:14 -0700 |
commit | 374ece66c69ace21267de769c9edd0556f2e325e (patch) | |
tree | b626821bf4c6087f0a27a0dc41374a2c805c03d9 /drivers/misc/tegra-profiler | |
parent | 08728775b30545682a2886ba3a3b1fdc24e95c22 (diff) |
misc: tegra-profiler: fix backtracing
check_vma_address function:
sometimes (rarely): address value may be overflowed
Bug 1312406
Change-Id: Ibf268000dfcba4046c499f734c368a0854d0f942
Signed-off-by: Igor Nabirushkin <inabirushkin@nvidia.com>
Reviewed-on: http://git-master/r/258236
(cherry picked from commit 6d41daab2b4d6ede2e16a0b0354631e8a6648d8b)
Reviewed-on: http://git-master/r/268524
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Tested-by: Maxim Morin <mmorin@nvidia.com>
Reviewed-by: Bo Yan <byan@nvidia.com>
Diffstat (limited to 'drivers/misc/tegra-profiler')
-rw-r--r-- | drivers/misc/tegra-profiler/backtrace.c | 6 | ||||
-rw-r--r-- | drivers/misc/tegra-profiler/version.h | 2 |
2 files changed, 5 insertions, 3 deletions
diff --git a/drivers/misc/tegra-profiler/backtrace.c b/drivers/misc/tegra-profiler/backtrace.c index d3fa8a0cb7d1..b89aceaba1fc 100644 --- a/drivers/misc/tegra-profiler/backtrace.c +++ b/drivers/misc/tegra-profiler/backtrace.c @@ -39,12 +39,14 @@ quadd_callchain_store(struct quadd_callchain *callchain_data, u32 ip) static int check_vma_address(unsigned long addr, struct vm_area_struct *vma) { - unsigned long start, end; + unsigned long start, end, length; if (vma) { start = vma->vm_start; end = vma->vm_end; - if (addr >= start && addr + sizeof(unsigned long) <= end) + length = end - start; + if (length > sizeof(unsigned long) && + addr >= start && addr <= end - sizeof(unsigned long)) return 0; } return -EINVAL; diff --git a/drivers/misc/tegra-profiler/version.h b/drivers/misc/tegra-profiler/version.h index 6bfd1a30d3c0..acc278b747c5 100644 --- a/drivers/misc/tegra-profiler/version.h +++ b/drivers/misc/tegra-profiler/version.h @@ -18,7 +18,7 @@ #ifndef __QUADD_VERSION_H #define __QUADD_VERSION_H -#define QUADD_MODULE_VERSION "1.25" +#define QUADD_MODULE_VERSION "1.26" #define QUADD_MODULE_BRANCH "Blackrock2" #endif /* __QUADD_VERSION_H */ |