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 Include shlib-compat.h in many sunrpc/nis source files. 2017-06-04 11:31:28 -04:00
auth_unix.c Change most internal uses of __gettimeofday to __clock_gettime. 2019-10-30 17:04:10 -03:00
authdes_prot.c Include shlib-compat.h in many sunrpc/nis source files. 2017-06-04 11:31:28 -04:00
authuxprot.c Include shlib-compat.h in many sunrpc/nis source files. 2017-06-04 11:31:28 -04:00
clnt_gen.c Replace all internal uses of __bzero with memset. This removes the need 2017-06-12 14:56:53 +01:00
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 sunrpc: Remove always-defined _RPC_THREAD_SAFE_ macro 2018-06-26 15:27:03 +02:00
clnt_simp.c sunrpc: Remove always-defined _RPC_THREAD_SAFE_ macro 2018-06-26 15:27:03 +02:00
clnt_tcp.c Consistently use uintN_t not u_intN_t everywhere. 2017-08-07 19:55:34 +00:00
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 Consistently use uintN_t not u_intN_t everywhere. 2017-08-07 19:55:34 +00:00
create_xid.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
des_crypt.c Disallow use of DES encryption functions in new programs. 2018-06-29 16:53:18 +02:00
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 Disallow use of DES encryption functions in new programs. 2018-06-29 16:53:18 +02:00
get_myaddr.c Include shlib-compat.h in many sunrpc/nis source files. 2017-06-04 11:31:28 -04:00
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 Include shlib-compat.h in many sunrpc/nis source files. 2017-06-04 11:31:28 -04:00
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 Remove use of INTDEF/INTUSE in libio 2012-05-24 23:06:20 +02:00
pm_getmaps.c Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
pm_getport.c sunrpc: Remove internal_function attribute 2017-08-31 15:59:02 +02:00
pmap_clnt.c Include shlib-compat.h in many sunrpc/nis source files. 2017-06-04 11:31:28 -04:00
pmap_prot2.c Include shlib-compat.h in many sunrpc/nis source files. 2017-06-04 11:31:28 -04:00
pmap_prot.c Include shlib-compat.h in many sunrpc/nis source files. 2017-06-04 11:31:28 -04:00
pmap_rmt.c sunrpc: Remove internal_function attribute 2017-08-31 15:59:02 +02:00
publickey.c nsswitch: use new internal API (callers) 2020-12-04 17:16:32 -05:00
rpc_cmsg.c Include shlib-compat.h in many sunrpc/nis source files. 2017-06-04 11:31:28 -04:00
rpc_common.c sunrpc: Remove hidden aliases for global data symbols (bug 26210) 2020-07-08 08:39:39 +02:00
rpc_dtable.c Include shlib-compat.h in many sunrpc/nis source files. 2017-06-04 11:31:28 -04:00
rpc_gethostbyname.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
rpc_prot.c Include shlib-compat.h in many sunrpc/nis source files. 2017-06-04 11:31:28 -04:00
rpc_thread.c libc: Extend __libc_freeres framework (Bug 23329). 2018-06-29 22:39:06 -04:00
rtime.c Include shlib-compat.h in many sunrpc/nis source files. 2017-06-04 11:31:28 -04:00
svc_auth.c Include shlib-compat.h in many sunrpc/nis source files. 2017-06-04 11:31:28 -04:00
svc_authux.c
svc_raw.c sunrpc: Remove always-defined _RPC_THREAD_SAFE_ macro 2018-06-26 15:27:03 +02:00
svc_run.c Include shlib-compat.h in many sunrpc/nis source files. 2017-06-04 11:31:28 -04:00
svc_simple.c sunrpc: Remove always-defined _RPC_THREAD_SAFE_ macro 2018-06-26 15:27:03 +02:00
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 Exclude rpcent functions and NSS backends for rpc, key when excluding sunrpc. 2015-02-06 10:43:19 -08:00
xcrypt.c sunrpc: Remove internal_function attribute 2017-08-31 15:59:02 +02:00
xdr_array.c Include shlib-compat.h in many sunrpc/nis source files. 2017-06-04 11:31:28 -04:00
xdr_float.c Include shlib-compat.h in many sunrpc/nis source files. 2017-06-04 11:31:28 -04:00
xdr_intXX_t.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
xdr_mem.c Include shlib-compat.h in many sunrpc/nis source files. 2017-06-04 11:31:28 -04:00
xdr_rec.c sunrpc: Remove internal_function attribute 2017-08-31 15:59:02 +02:00
xdr_ref.c Include shlib-compat.h in many sunrpc/nis source files. 2017-06-04 11:31:28 -04:00
xdr_sizeof.c Include shlib-compat.h in many sunrpc/nis source files. 2017-06-04 11:31:28 -04:00
xdr_stdio.c Consistently use uintN_t not u_intN_t everywhere. 2017-08-07 19:55:34 +00:00
xdr.c Fix fall-through warnings in sunrpc/xdr.c. 2019-02-14 20:35:16 +00:00