usercopy: Remove pointer from overflow report
PATCH 1/1 usercopy: Remove pointer from overflow report
Using %p was already mostly useless in the usercopy overflow reports, so this removes it entirely to avoid confusion now that %p-hashing is enabled.
Fixes ad67b74d2469d9b8 ("printk: hash addresses printed with %p")
Signed-off-by Kees Cook <[email protected]>
---
I have follow-ups to this that include the offset in reporting, but it's a large enough refactoring that I don't think it should go into a late -rc like this. I'll send it as part of the 4.16 merge window instead.
--- mm/usercopy.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
mm/usercopy.c +4 -5
@@ -58,12 +58,11 @@ static noinline int check_stack_object(const void *obj, unsigned long len)return GOOD_STACK ; } -static void report_usercopy (const void *ptr,unsigned long len, -bool to_user,const char *type) +static void report_usercopy (unsigned long len,bool to_user,const char *type) { -pr_emerg ("kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n" , +pr_emerg ("kernel memory %s attempt detected %s '%s' (%lu bytes)\n" , to_user ?"exposure" :"overwrite" , - to_user ?"from" :"to" , ptr, type ? :"unknown" , len); + to_user ?"from" :"to" , type ? :"unknown" , len);/* * For greater effect, it would be nice to do do_group_exit(), * but BUG() actually hooks all the lock-breaking and per-arch
@@ -261,6 +260,6 @@ void __check_object_size(const void *ptr, unsigned long n, bool to_user)return ; report: -report_usercopy (ptr, n, to_user, err); +report_usercopy (n, to_user, err); }EXPORT_SYMBOL (__check_object_size);
Signature · 6 lines
2.7.4 -- Kees Cook Pixel Security