diff options
author | Igor Nabirushkin <inabirushkin@nvidia.com> | 2013-08-05 17:29:32 +0400 |
---|---|---|
committer | Gabby Lee <galee@nvidia.com> | 2013-08-20 18:29:59 -0700 |
commit | 34b4fb92906ca867879713c5bdd8076d5d0c0c4a (patch) | |
tree | d6da813e3304e637c8d679b6192af23bf6e81dd6 /drivers | |
parent | 0fbe177ed0b5663e63ba97d4107a69a176a136aa (diff) |
misc: tegra-profiler: fix backtracing
check_vma_address function:
sometimes (rarely): address value may be overflowed.
Bug 1312406
Change-Id: I50bdb89a92cc1ad28d57dc67a7c15c8d1ebebd6a
Signed-off-by: Igor Nabirushkin <inabirushkin@nvidia.com>
Reviewed-on: http://git-master/r/258205
GVS: Gerrit_Virtual_Submit
Reviewed-by: Daniel Horowitz <dhorowitz@nvidia.com>
Tested-by: Daniel Horowitz <dhorowitz@nvidia.com>
Reviewed-by: Gabby Lee <galee@nvidia.com>
Diffstat (limited to 'drivers')
-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 dd7c67cded5a..ea68e98ae5a6 100644 --- a/drivers/misc/tegra-profiler/backtrace.c +++ b/drivers/misc/tegra-profiler/backtrace.c @@ -38,12 +38,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 b71e8d8b4240..6bfd1a30d3c0 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.24" +#define QUADD_MODULE_VERSION "1.25" #define QUADD_MODULE_BRANCH "Blackrock2" #endif /* __QUADD_VERSION_H */ |