From: Petr Mladek <pmladek@suse.com>
To: Jaewon Kim <jaewon31.kim@samsung.com>
Cc: "senozhatsky@chromium.org" <senozhatsky@chromium.org>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"jaewon31.kim@gmail.com" <jaewon31.kim@gmail.com>,
GyeongHwan Hong <gh21.hong@samsung.com>
Subject: Re: [RFC] vsprintf: compile error on %09pK
Date: Mon, 3 Apr 2023 14:53:05 +0200 [thread overview]
Message-ID: <ZCrMMQt2xnnZIyz6@alley> (raw)
In-Reply-To: <20230403104617epcms1p383bacbca705c0d7e4fffca6833050e42@epcms1p3>
On Mon 2023-04-03 19:46:17, Jaewon Kim wrote:
> Hello
>
> I've just changed %09lx to %09pK on my driver code to hide the address, but I
> faced compiler error. The %9pK without 0 worked.
What exactly do you want to achieve, please?
Note that printk() hashes pointers by default. It means that %p does not
print the value but a hash based on the value.
If you print the same pointer twice, you will see the same hash, so
you know that the pointer is the same. But you do not see the address
so that you could not use the value for a security attack.
See Documentation/core-api/printk-formats.rst
Anyway, the main question if it makes sense to print the pointer value
at all. The address is not useful if it can't be compared with
other pointers or if the data on the address could not be checked.
> Is there restriction on %pK which does now allow %0 ? I've wondered whether I
> did wrong or it is a printk problem.
>
> To show easily I tried to add pr_info("%09pK\n", nodemask); in page_alloc.c
> Then here's what I did.
>
> $ ARCH=x86 make x86_64_defconfig ; make mm/page_alloc.o
> #
> # No change to .config
> #
> CALL scripts/checksyscalls.sh
> DESCEND objtool
> INSTALL libsubcmd_headers
> CC mm/page_alloc.o
> In file included from ./include/asm-generic/bug.h:22:0,
> from ./arch/x86/include/asm/bug.h:87,
> from ./include/linux/bug.h:5,
> from ./include/linux/mmdebug.h:5,
> from ./include/linux/mm.h:6,
> from mm/page_alloc.c:19:
> mm/page_alloc.c: In function ‘__alloc_pages’:
> ./include/linux/kern_levels.h:5:18: error: '0' flag used with ‘%p’ gnu_printf format [-Werror=format=]
> #define KERN_SOH "\001" /* ASCII Start Of Header */
As Sergey already wrote. %p does not support any modification flags.
Best Regards,
Petr
next prev parent reply other threads:[~2023-04-03 12:53 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20230403104617epcms1p383bacbca705c0d7e4fffca6833050e42@epcms1p3>
2023-04-03 10:46 ` Jaewon Kim
2023-04-03 12:18 ` Sergey Senozhatsky
2023-04-03 12:53 ` Petr Mladek [this message]
2023-04-03 14:39 ` Jaewon Kim
2023-04-03 15:34 ` Sergey Senozhatsky
2023-04-03 16:04 ` David Laight
[not found] ` <CGME20230403104617epcms1p383bacbca705c0d7e4fffca6833050e42@epcms1p6>
2023-04-04 10:12 ` Jaewon Kim
2023-04-04 12:03 ` Petr Mladek
[not found] ` <CGME20230403104617epcms1p383bacbca705c0d7e4fffca6833050e42@epcms1p1>
2023-04-04 12:33 ` Jaewon Kim
[not found] ` <CGME20230403104617epcms1p383bacbca705c0d7e4fffca6833050e42@epcms1p5>
2023-04-04 10:16 ` Jaewon Kim
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZCrMMQt2xnnZIyz6@alley \
--to=pmladek@suse.com \
--cc=gh21.hong@samsung.com \
--cc=jaewon31.kim@gmail.com \
--cc=jaewon31.kim@samsung.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=senozhatsky@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox