From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752889AbdKIBuw (ORCPT ); Wed, 8 Nov 2017 20:50:52 -0500 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:59675 "EHLO out4-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752289AbdKIBuu (ORCPT ); Wed, 8 Nov 2017 20:50:50 -0500 X-ME-Sender: From: "Tobin C. Harding" To: kernel-hardening@lists.openwall.com Cc: "Tobin C. Harding" , "Jason A. Donenfeld" , "Theodore Ts'o" , Linus Torvalds , Kees Cook , Paolo Bonzini , Tycho Andersen , "Roberts, William C" , Tejun Heo , Jordan Glover , Greg KH , Petr Mladek , Joe Perches , Ian Campbell , Sergey Senozhatsky , Catalin Marinas , Will Deacon , Steven Rostedt , Chris Fries , Dave Weinstein , Daniel Micay , Djalal Harouni , "Paul E. McKenney" , Andy Lutomirski , Peter Zijlstra , David Miller , Network Development , linux-kernel@vger.kernel.org Subject: [PATCH] kallsyms: don't leak address when printing symbol Date: Thu, 9 Nov 2017 12:50:29 +1100 Message-Id: <1510192229-20038-1-git-send-email-me@tobin.cc> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently if a pointer is printed using %p[ssB] and the symbol is not found (kallsyms_lookup() fails) then we print the actual address. This leaks kernel addresses. We should instead print something _safe_. Print "" instead of kernel address. Signed-off-by: Tobin C. Harding --- kernel/kallsyms.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c index 127e7cfafa55..182e7592be9c 100644 --- a/kernel/kallsyms.c +++ b/kernel/kallsyms.c @@ -390,7 +390,7 @@ static int __sprint_symbol(char *buffer, unsigned long address, address += symbol_offset; name = kallsyms_lookup(address, &size, &offset, &modname, buffer); if (!name) - return sprintf(buffer, "0x%lx", address - symbol_offset); + return sprintf(buffer, ""); if (name != buffer) strcpy(buffer, name); -- 2.7.4