[klibc] [klibc:time64] select: Fix handling of NULL timeout when wrapping pselect()

klibc-bot for Ben Hutchings ben at decadent.org.uk
Sat Jan 14 14:03:10 PST 2023


Commit-ID:  866f4f67bb5136dc69f6eac68cbcb78c5303d5e4
Gitweb:     http://git.kernel.org/?p=libs/klibc/klibc.git;a=commit;h=866f4f67bb5136dc69f6eac68cbcb78c5303d5e4
Author:     Ben Hutchings <ben at decadent.org.uk>
AuthorDate: Sat, 14 Jan 2023 03:43:16 +0100
Committer:  Ben Hutchings <ben at decadent.org.uk>
CommitDate: Sat, 14 Jan 2023 18:10:12 +0100

[klibc] select: Fix handling of NULL timeout when wrapping pselect()

If select() is called with no timeout, our implementation wrapping
pselect() passes an uninitialised timespec buffer to pselect().  It
should pass NULL.

Signed-off-by: Ben Hutchings <ben at decadent.org.uk>

---
 usr/klibc/select.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/usr/klibc/select.c b/usr/klibc/select.c
index 7af28fee..8ad93a4b 100644
--- a/usr/klibc/select.c
+++ b/usr/klibc/select.c
@@ -21,7 +21,8 @@ int select(int nfds, fd_set *readfds, fd_set *writefds,
 		ts.tv_nsec = timeout->tv_usec * 1000;
 	}
 
-	result = __pselect6(nfds, readfds, writefds, exceptfds, &ts, NULL);
+	result = __pselect6(nfds, readfds, writefds, exceptfds,
+			    timeout ? &ts : NULL, NULL);
 
 	if (timeout) {
 		timeout->tv_sec = ts.tv_sec;


More information about the klibc mailing list