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>
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;
#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 */