diff mbox series

arm64/vdso: don't leak kernel addresses

Message ID 20190330184638.16219-1-mcroce@redhat.com (mailing list archive)
State New, archived
Headers show
Series arm64/vdso: don't leak kernel addresses | expand

Commit Message

Matteo Croce March 30, 2019, 6:46 p.m. UTC
Since commit ad67b74d2469d9b8 ("printk: hash addresses printed with %p"),
two obfuscated kernel pointer are printed at every boot:

    vdso: 2 pages (1 code @ (____ptrval____), 1 data @ (____ptrval____))

Remove the addresses from the print, which turns into a more discrete:

    vdso: 2 pages (1 code, 1 data)

Fixes: ad67b74d2469d9b8 ("printk: hash addresses printed with %p")
Signed-off-by: Matteo Croce <mcroce@redhat.com>
---
 arch/arm64/kernel/vdso.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Mukesh Ojha March 30, 2019, 7:40 p.m. UTC | #1
On 3/31/2019 12:16 AM, Matteo Croce wrote:
> Since commit ad67b74d2469d9b8 ("printk: hash addresses printed with %p"),
> two obfuscated kernel pointer are printed at every boot:
>
>      vdso: 2 pages (1 code @ (____ptrval____), 1 data @ (____ptrval____))
>
> Remove the addresses from the print, which turns into a more discrete:
>
>      vdso: 2 pages (1 code, 1 data)
>
> Fixes: ad67b74d2469d9b8 ("printk: hash addresses printed with %p")
> Signed-off-by: Matteo Croce <mcroce@redhat.com>
Reviewed-by: Mukesh Ojha <mojha@codeaurora.org>

Cheers,
-Mukesh


> ---
>   arch/arm64/kernel/vdso.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/kernel/vdso.c b/arch/arm64/kernel/vdso.c
> index 2d419006ad43..fdfee0ef5bc5 100644
> --- a/arch/arm64/kernel/vdso.c
> +++ b/arch/arm64/kernel/vdso.c
> @@ -146,8 +146,8 @@ static int __init vdso_init(void)
>   	}
>   
>   	vdso_pages = (vdso_end - vdso_start) >> PAGE_SHIFT;
> -	pr_info("vdso: %ld pages (%ld code @ %p, %ld data @ %p)\n",
> -		vdso_pages + 1, vdso_pages, vdso_start, 1L, vdso_data);
> +	pr_info("vdso: %ld pages (%ld code, %ld data)\n",
> +		vdso_pages + 1, vdso_pages, 1L);
>   
>   	/* Allocate the vDSO pagelist, plus a page for the data. */
>   	vdso_pagelist = kcalloc(vdso_pages + 1, sizeof(struct page *),
Mark Rutland April 1, 2019, 7:39 a.m. UTC | #2
On Sat, Mar 30, 2019 at 07:46:38PM +0100, Matteo Croce wrote:
> Since commit ad67b74d2469d9b8 ("printk: hash addresses printed with %p"),
> two obfuscated kernel pointer are printed at every boot:
> 
>     vdso: 2 pages (1 code @ (____ptrval____), 1 data @ (____ptrval____))
> 
> Remove the addresses from the print, which turns into a more discrete:
> 
>     vdso: 2 pages (1 code, 1 data)
> 
> Fixes: ad67b74d2469d9b8 ("printk: hash addresses printed with %p")
> Signed-off-by: Matteo Croce <mcroce@redhat.com>
> ---
>  arch/arm64/kernel/vdso.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm64/kernel/vdso.c b/arch/arm64/kernel/vdso.c
> index 2d419006ad43..fdfee0ef5bc5 100644
> --- a/arch/arm64/kernel/vdso.c
> +++ b/arch/arm64/kernel/vdso.c
> @@ -146,8 +146,8 @@ static int __init vdso_init(void)
>  	}
>  
>  	vdso_pages = (vdso_end - vdso_start) >> PAGE_SHIFT;
> -	pr_info("vdso: %ld pages (%ld code @ %p, %ld data @ %p)\n",
> -		vdso_pages + 1, vdso_pages, vdso_start, 1L, vdso_data);
> +	pr_info("vdso: %ld pages (%ld code, %ld data)\n",
> +		vdso_pages + 1, vdso_pages, 1L);

It's probably better to drop this pr_info() entirely. The number of data and
code pages hasn't changed since this was upstreamed, and the pointers were the
useful part for debugging.

If you respin this to delete the pr_info() entirely, then feel free to add:

Acked-by: Mark Rutland <mark.rutland@arm.com>

Mark.
diff mbox series

Patch

diff --git a/arch/arm64/kernel/vdso.c b/arch/arm64/kernel/vdso.c
index 2d419006ad43..fdfee0ef5bc5 100644
--- a/arch/arm64/kernel/vdso.c
+++ b/arch/arm64/kernel/vdso.c
@@ -146,8 +146,8 @@  static int __init vdso_init(void)
 	}
 
 	vdso_pages = (vdso_end - vdso_start) >> PAGE_SHIFT;
-	pr_info("vdso: %ld pages (%ld code @ %p, %ld data @ %p)\n",
-		vdso_pages + 1, vdso_pages, vdso_start, 1L, vdso_data);
+	pr_info("vdso: %ld pages (%ld code, %ld data)\n",
+		vdso_pages + 1, vdso_pages, 1L);
 
 	/* Allocate the vDSO pagelist, plus a page for the data. */
 	vdso_pagelist = kcalloc(vdso_pages + 1, sizeof(struct page *),