summaryrefslogtreecommitdiff
path: root/drivers/misc
diff options
context:
space:
mode:
authorIgor Nabirushkin <inabirushkin@nvidia.com>2013-08-05 20:34:13 +0400
committerDan Willemsen <dwillemsen@nvidia.com>2013-09-16 17:40:14 -0700
commit374ece66c69ace21267de769c9edd0556f2e325e (patch)
treeb626821bf4c6087f0a27a0dc41374a2c805c03d9 /drivers/misc
parent08728775b30545682a2886ba3a3b1fdc24e95c22 (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')
-rw-r--r--drivers/misc/tegra-profiler/backtrace.c6
-rw-r--r--drivers/misc/tegra-profiler/version.h2
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 */