Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Tue, 12 Jan 2021 07:56:58 +0000
From: "zhuyan (M)" <zhuyan34@...wei.com>
To: "musl@...ts.openwall.com" <musl@...ts.openwall.com>
CC: Zengweilin <zengweilin@...wei.com>, "liucheng (G)"
	<liucheng32@...wei.com>, "chenzefeng (A)" <chenzefeng2@...wei.com>
Subject: [PATCH] fix segfault in getitimer when old argument is NULL


When old is NULL, call old->it_interval.tv_sec to dereference a null pointer in getitimer.

The commit 558c01338b0b635632e70af6ec8a484ca70b0328 introduces this problem.

Signed-off-by: Qing Wu <wuqing30@...wei.com>
Signed-off-by: Yan Zhu <zhuyan34@...wei.com>
---
 src/signal/getitimer.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/signal/getitimer.c b/src/signal/getitimer.c index 36d1eb9d..f6fde204 100644
--- a/src/signal/getitimer.c
+++ b/src/signal/getitimer.c
@@ -6,7 +6,7 @@ int getitimer(int which, struct itimerval *old)
 	if (sizeof(time_t) > sizeof(long)) {
 		long old32[4];
 		int r = __syscall(SYS_getitimer, which, old32);
-		if (!r) {
+		if (!r && old) {
 			old->it_interval.tv_sec = old32[0];
 			old->it_interval.tv_usec = old32[1];
 			old->it_value.tv_sec = old32[2];
--
2.12.3

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.