[PATCH] rtc: dev: zero-initialize struct rtc_wkalrm to prevent information leak

Liu Dalin posted 1 patch 1 month ago
drivers/rtc/dev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] rtc: dev: zero-initialize struct rtc_wkalrm to prevent information leak
Posted by Liu Dalin 1 month ago
The struct rtc_wkalrm has padding holes after the 'pending' member.
When returned to userspace via the RTC_WKALRM_RD ioctl, uninitialized
kernel stack data residing in these holes may be leaked.

Zero-initialize the struct at declaration to eliminate this information
leak risk.

Fixes smatch warnings:
- drivers/rtc/dev.c:392 rtc_dev_ioctl() warn: check that 'alarm' doesn't
  leak information (struct has a hole after 'pending')

Fixes: 36e14f5fdfdf ("rtc: rename core files")
Assisted-by: smatch:2.0 [static analysis]
Signed-off-by: Liu Dalin <liudalin@kylinsec.com.cn>
---
 drivers/rtc/dev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/rtc/dev.c b/drivers/rtc/dev.c
index 8ba7c25d2565..be173c9511fa 100644
--- a/drivers/rtc/dev.c
+++ b/drivers/rtc/dev.c
@@ -216,7 +216,7 @@ static long rtc_dev_ioctl(struct file *file,
 	struct rtc_device *rtc = file->private_data;
 	const struct rtc_class_ops *ops = rtc->ops;
 	struct rtc_time tm;
-	struct rtc_wkalrm alarm;
+	struct rtc_wkalrm alarm = { 0 };
 	struct rtc_param param;
 	void __user *uarg = (void __user *)arg;
 
-- 
2.43.0
Re: [PATCH] rtc: dev: zero-initialize struct rtc_wkalrm to prevent information leak
Posted by Alexandre Belloni 5 days, 5 hours ago
On Thu, 27 Aug 2026 09:54:44 +0800, Liu Dalin wrote:
> The struct rtc_wkalrm has padding holes after the 'pending' member.
> When returned to userspace via the RTC_WKALRM_RD ioctl, uninitialized
> kernel stack data residing in these holes may be leaked.
> 
> Zero-initialize the struct at declaration to eliminate this information
> leak risk.
> 
> [...]

Applied, thanks!

[1/1] rtc: dev: zero-initialize struct rtc_wkalrm to prevent information leak
      https://git.kernel.org/abelloni/c/0ee5c5d804d5

Best regards,

-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com