glibc/sunrpc
Stefan Liebler 4b2e40a925 Handle out-of-memory case in svc_tcp.c/svc_unix.c:rendezvous_request.
If glibc is build with -O3 on at least 390 (-m31) or x86 (-m32),
gcc 11 dumps this warning:
svc_tcp.c: In function 'rendezvous_request':
svc_tcp.c:274:3: error: 'memcpy' offset [0, 15] is out of the bounds [0, 0] [-Werror=array-bounds]
  274 |   memcpy (&xprt->xp_raddr, &addr, sizeof (addr));
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

In out-of-memory case, if one of the mallocs in makefd_xprt function
returns NULL, a message is dumped, makefd_xprt returns NULL
and the subsequent memcpy would copy to NULL.

Instead of a segfaulting, we delay a bit (see also __svc_accept_failed
and Bug 14889 (CVE-2011-4609) - svc_run() produces high cpu usage when
accept() fails with EMFILE (CVE-2011-4609).

The same applies to svc_unix.c.
Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2020-12-10 11:11:20 +01:00
..
rpc sunrpc: Adjust RPC function declarations to match Sun's (bug 26686] 2020-10-08 12:53:09 -06:00
auth_des.c Change most internal uses of __gettimeofday to __clock_gettime. 2019-10-30 17:04:10 -03:00
auth_none.c
auth_unix.c Change most internal uses of __gettimeofday to __clock_gettime. 2019-10-30 17:04:10 -03:00
authdes_prot.c
authuxprot.c
clnt_gen.c
clnt_perr.c sunrpc: Turn clnt_sperrno into a libc_hidden_nolink_sunrpc symbol 2020-07-07 20:19:57 +02:00
clnt_raw.c
clnt_simp.c
clnt_tcp.c
clnt_udp.c Disable -Wmaybe-uninitialized for total_deadline in sunrpc/clnt_udp.c. 2019-10-02 21:12:17 +00:00
clnt_unix.c
create_xid.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
des_crypt.c
des_impl.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
des_soft.c
get_myaddr.c
getrpcport.c sunrpc: Do not export getrpcport by default 2020-07-07 20:19:57 +02:00
key_call.c sunrpc: Do not export key handling hooks by default 2020-07-07 20:19:57 +02:00
key_prot.c
Makefile Remove --enable-obsolete-rpc configure flag 2020-07-13 19:36:35 +02:00
netname.c nsswitch: use new internal API (callers) 2020-12-04 17:16:32 -05:00
openchild.c
pm_getmaps.c
pm_getport.c
pmap_clnt.c
pmap_prot2.c
pmap_prot.c
pmap_rmt.c
publickey.c nsswitch: use new internal API (callers) 2020-12-04 17:16:32 -05:00
rpc_cmsg.c
rpc_common.c sunrpc: Remove hidden aliases for global data symbols (bug 26210) 2020-07-08 08:39:39 +02:00
rpc_dtable.c
rpc_gethostbyname.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
rpc_prot.c
rpc_thread.c
rtime.c
svc_auth.c
svc_authux.c
svc_raw.c
svc_run.c
svc_simple.c
svc_tcp.c Handle out-of-memory case in svc_tcp.c/svc_unix.c:rendezvous_request. 2020-12-10 11:11:20 +01:00
svc_udp.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
svc_unix.c Handle out-of-memory case in svc_tcp.c/svc_unix.c:rendezvous_request. 2020-12-10 11:11:20 +01:00
svc.c Handle out-of-memory case in svc_tcp.c/svc_unix.c:rendezvous_request. 2020-12-10 11:11:20 +01:00
svcauth_des.c Change most internal uses of __gettimeofday to __clock_gettime. 2019-10-30 17:04:10 -03:00
test-rpcent.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
thrsvc.c
tst-getmyaddr.c
tst-svc_register.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-udp-error.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-udp-garbage.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-udp-nonblocking.c sunrpc/tst-udp-*: Fix timeout value 2020-05-16 19:34:48 +02:00
tst-udp-timeout.c sunrpc/tst-udp-*: Fix timeout value 2020-05-16 19:34:48 +02:00
tst-xdrmem2.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-xdrmem.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
Versions
xcrypt.c
xdr_array.c
xdr_float.c
xdr_intXX_t.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
xdr_mem.c
xdr_rec.c
xdr_ref.c
xdr_sizeof.c
xdr_stdio.c
xdr.c