@@ -36,17 +36,6 @@
const char *get_bug_type(struct kasan_access_info *info)
{
- /*
- * If access_size is a negative number, then it has reason to be
- * defined as out-of-bounds bug type.
- *
- * Casting negative numbers to size_t would indeed turn up as
- * a large size_t and its value will be larger than ULONG_MAX/2,
- * so that this can qualify as out-of-bounds.
- */
- if (info->access_addr + info->access_size < info->access_addr)
- return "out-of-bounds";
-
#ifdef CONFIG_KASAN_SW_TAGS_IDENTIFY
struct kasan_alloc_meta *alloc_meta;
struct kmem_cache *cache;
@@ -71,6 +60,17 @@ const char *get_bug_type(struct kasan_access_info *info)
}
#endif
+ /*
+ * If access_size is a negative number, then it has reason to be
+ * defined as out-of-bounds bug type.
+ *
+ * Casting negative numbers to size_t would indeed turn up as
+ * a large size_t and its value will be larger than ULONG_MAX/2,
+ * so that this can qualify as out-of-bounds.
+ */
+ if (info->access_addr + info->access_size < info->access_addr)
+ return "out-of-bounds";
+
return "invalid-access";
}
The linux-next commit "kasan: detect negative size in memory operation function" introduced a compilation warning, mm/kasan/tags_report.c:51:27: warning: ISO C90 forbids mixing declarations and code [-Wdeclaration-after-statement] struct kasan_alloc_meta *alloc_meta; Fix it by moving a code around a bit where there is no strict dependency. Signed-off-by: Qian Cai <cai@lca.pw> --- mm/kasan/tags_report.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)