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

klibc-bot for Ben Hutchings ben at decadent.org.uk
Sun Feb 12 14:48:11 PST 2023


Commit-ID:  0743d8d14da1086bc903159cec4504c7cef756c3
Gitweb:     http://git.kernel.org/?p=libs/klibc/klibc.git;a=commit;h=0743d8d14da1086bc903159cec4504c7cef756c3
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: Sun, 12 Feb 2023 22:10:18 +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