Re: [PATCH] staging: vchip_arm: Fix misuse of %x

From: Guo Zhi
Date: Thu Sep 23 2021 - 22:57:59 EST


On 2021/9/23 13:19, Greg KH wrote:
On Thu, Sep 23, 2021 at 11:55:54AM +0800, Guo Zhi wrote:
Pointers should be printed with %p or %px rather than
cast to (unsigned long) and printed with %lx.
Change %lx to %pK to print the pointers.

Signed-off-by: Guo Zhi <qtxuning1999@xxxxxxxxxxx>
---
.../staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
index b5aac862a29..408e5fe710b 100644
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
@@ -591,11 +591,11 @@ service_callback(enum vchiq_reason reason, struct vchiq_header *header,
return VCHIQ_SUCCESS;
vchiq_log_trace(vchiq_arm_log_level,
- "%s - service %lx(%d,%p), reason %d, header %lx, instance %lx, bulk_userdata %lx",
- __func__, (unsigned long)user_service,
+ "%s - service %pK(%d,%p), reason %d, header %pK, instance %pK, bulk_userdata %pK",
+ __func__, user_service,
service->localport, user_service->userdata,
- reason, (unsigned long)header,
- (unsigned long)instance, (unsigned long)bulk_userdata);
+ reason, header,
+ instance, bulk_userdata);
Why print this out at all? What uses this? Can it just be deleted?

thanks,

greg k-h

This information is printed for debugging usage.

But malicious user process can also print it through debugfs at /sys/kernel/debug.

As it can be used for debugging, it's a little radical to just delete.

Therefore, I suggest replacing %lx with %pK to avoid kernel address leakage.

thanks,

Guo