From: Rich Felker Date: Wed, 7 Aug 2019 06:57:53 +0000 (-0400) Subject: fix regression in select with no timeout X-Git-Tag: v1.1.24~50 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=d0b547dfb5f7678cab6bc39dd736ed6454357ca4;p=oweals%2Fmusl.git fix regression in select with no timeout commit 722a1ae3351a03ab25010dbebd492eced664853b inadvertently passed a copy of {s,us} to the syscall even if the timeout argument tv was null, thereby causing immediate timeout (polling) in place of unlimited timeout. only archs using SYS_select were affected. --- diff --git a/src/select/select.c b/src/select/select.c index e84c887f..8a786884 100644 --- a/src/select/select.c +++ b/src/select/select.c @@ -35,7 +35,8 @@ int select(int n, fd_set *restrict rfds, fd_set *restrict wfds, fd_set *restrict return __syscall_ret(r); #endif #ifdef SYS_select - return syscall_cp(SYS_select, n, rfds, wfds, efds, ((long[]){s, us})); + return syscall_cp(SYS_select, n, rfds, wfds, efds, + tv ? ((long[]){s, us}) : 0); #else return syscall_cp(SYS_pselect6, n, rfds, wfds, efds, tv ? ((long[]){s, ns}) : 0, ((syscall_arg_t[]){ 0, _NSIG/8 }));