Commit 6424f6bb authored by Tobin C. Harding's avatar Tobin C. Harding

kasan: use %px to print addresses instead of %p

Pointers printed with %p are now hashed by default. Kasan needs the
actual address. We can use the new printk specifier %px for this
purpose.

Use %px instead of %p to print addresses.
Signed-off-by: default avatarTobin C. Harding <me@tobin.cc>
parent 7b1924a1
...@@ -134,7 +134,7 @@ static void print_error_description(struct kasan_access_info *info) ...@@ -134,7 +134,7 @@ static void print_error_description(struct kasan_access_info *info)
pr_err("BUG: KASAN: %s in %pS\n", pr_err("BUG: KASAN: %s in %pS\n",
bug_type, (void *)info->ip); bug_type, (void *)info->ip);
pr_err("%s of size %zu at addr %p by task %s/%d\n", pr_err("%s of size %zu at addr %px by task %s/%d\n",
info->is_write ? "Write" : "Read", info->access_size, info->is_write ? "Write" : "Read", info->access_size,
info->access_addr, current->comm, task_pid_nr(current)); info->access_addr, current->comm, task_pid_nr(current));
} }
...@@ -206,7 +206,7 @@ static void describe_object_addr(struct kmem_cache *cache, void *object, ...@@ -206,7 +206,7 @@ static void describe_object_addr(struct kmem_cache *cache, void *object,
const char *rel_type; const char *rel_type;
int rel_bytes; int rel_bytes;
pr_err("The buggy address belongs to the object at %p\n" pr_err("The buggy address belongs to the object at %px\n"
" which belongs to the cache %s of size %d\n", " which belongs to the cache %s of size %d\n",
object, cache->name, cache->object_size); object, cache->name, cache->object_size);
...@@ -225,7 +225,7 @@ static void describe_object_addr(struct kmem_cache *cache, void *object, ...@@ -225,7 +225,7 @@ static void describe_object_addr(struct kmem_cache *cache, void *object,
} }
pr_err("The buggy address is located %d bytes %s of\n" pr_err("The buggy address is located %d bytes %s of\n"
" %d-byte region [%p, %p)\n", " %d-byte region [%px, %px)\n",
rel_bytes, rel_type, cache->object_size, (void *)object_addr, rel_bytes, rel_type, cache->object_size, (void *)object_addr,
(void *)(object_addr + cache->object_size)); (void *)(object_addr + cache->object_size));
} }
...@@ -302,7 +302,7 @@ static void print_shadow_for_address(const void *addr) ...@@ -302,7 +302,7 @@ static void print_shadow_for_address(const void *addr)
char shadow_buf[SHADOW_BYTES_PER_ROW]; char shadow_buf[SHADOW_BYTES_PER_ROW];
snprintf(buffer, sizeof(buffer), snprintf(buffer, sizeof(buffer),
(i == 0) ? ">%p: " : " %p: ", kaddr); (i == 0) ? ">%px: " : " %px: ", kaddr);
/* /*
* We should not pass a shadow pointer to generic * We should not pass a shadow pointer to generic
* function, because generic functions may try to * function, because generic functions may try to
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment