Home | History | Annotate | Download | only in rpc
History log of /src/lib/libc/rpc/xdr_rec.c
RevisionDateAuthorComments
 1.41  22-Mar-2024  andvar Fix few typos in comments.
 1.40  23-Jan-2024  christos fix nested extern warnings
 1.39  16-Jun-2023  andvar fix typos in comments.
 1.38  21-Aug-2021  andvar fix mainly same typos as in my previous commit but outside sys/dev/dm.
 1.37  25-Jul-2018  kamil Avoid undefined behavior in the definition of LAST_FRAG in xdr_rec.c

Do not change the signedness bit with a left shift operation.
Switch to unsigned integer to prevent this in the LAST_FRAG symbol.

xdr_rec.c:559:39, left shift of 1 by 31 places cannot be represented in type 'int'
xdr_rec.c:572:26, left shift of 1 by 31 places cannot be represented in type 'int'
xdr_rec.c:573:25, left shift of 1 by 31 places cannot be represented in type 'int'
xdr_rec.c:632:37, left shift of 1 by 31 places cannot be represented in type 'int'
xdr_rec.c:711:32, left shift of 1 by 31 places cannot be represented in type 'int'
xdr_rec.c:722:28, left shift of 1 by 31 places cannot be represented in type 'int'

Detected with micro-UBSan in the user mode.
 1.36  26-Mar-2015  justin branches: 1.36.14; 1.36.16;
Fix definitions to match headers
 1.35  11-Mar-2013  tron Replace previous Sun Microsystems, Inc. license with a standard
BSD 3-clause license granted by Oracle America, Inc..
This license change was approved by Wim Coekaerts, Senior Vice President,
Linux and Virtualization at Oracle Corporation.

This fixes PR lib/45293 by Pedro Giffuni.
 1.34  04-Mar-2013  christos fix error messages and warnings.
 1.33  20-Mar-2012  matt branches: 1.33.2;
Use C89 definitions
Remove use of __P
 1.32  13-Mar-2012  christos PR/45989: Martin Husemann: lint invocation does include -w only on i386

- turn lint -w for all the platforms after fixing the lint warnings.
- add _DIAGASSERTS() for casts that would assign values to types that
would not fit.
- change types, add casts
- change into ansii prototypes
- turn on _DIAGNOSTIC for libc (during current, to be eliminated for release
builds)

approved by core@
 1.31  23-Nov-2010  christos branches: 1.31.6; 1.31.8;
PR/44132: Wolfgang Stukenbrock: libc/rpc may overwrite not-allocated memory
Return XPRT_DIED when realloc fails for lack of a better error.
 1.30  12-Feb-2009  lukem sign-compare fixes
 1.29  17-Aug-2008  rtr branches: 1.29.4; 1.29.6; 1.29.8;
revert previous
 1.28  17-Aug-2008  rtr fix comment iff -> if
 1.27  15-Oct-2006  christos fix incomplete initializers
 1.26  19-Jan-2006  christos PR/32572: John Kohl: xdr_rec.c missing a bugfix for an improper security check
The correct way to check for a zero record length is to check for it
without the LAST_FRAG marker in it, since it's legal to send a LAST_FRAG
marker with 0 bytes of data.
[This should be pulled up to 3.0]
 1.25  09-Jun-2005  yamt use malloc rather than mem_alloc (which is implemented using calloc)
for receive/send buffers to avoid unnecessarily anonymous memory bloat.
 1.24  03-Oct-2003  christos branches: 1.24.6;
PR/20768: Martin Blapp: Remove special handling for non-blocking connections
that breaks amd clients.
 1.23  19-May-2003  fvdl Back out previous for now. I already suspected part of it was wrong,
and there has been one report of problems in the mean time.
 1.22  18-May-2003  christos From Martin Blapp mb at imp dot ch, should fix PR/20768

Remove the special treatment off non-blocking mode in
xdrrec_eof(). This change broke seriously reading serialized
xdr-records. A end of a request could sometimes not
be recognized and the socket got closed too early.

Initialize in_reclen and in_received in a second case
if we get more outstanding records.
 1.21  27-Jan-2003  fvdl Reset in_reclen and in_received after having received a full record in
the nonblocking case.
 1.20  18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.19  08-Nov-2002  fvdl * Adapt include files for rpc_com.h/rpc_internal.h split.
* Add rpc_control to svc.c
* Implement non-blocking connections.
 1.18  06-Jul-2000  christos branches: 1.18.2; 1.18.4;
add __RPC_GETXID macro
don't const castway __rpc_getconf and __rpc_getconfig. It might try to
write const strings
fix non-portable casts
remove duplicated prototypes
cast things to proper types
remove extraneous casts to NULL
fix variable cast mismatches
remove register var declarations
 1.17  22-Jan-2000  mycroft Delint.
Remove trailing ; from uses of __weak_alias(). The macro inserts this if
needed.
 1.16  04-Mar-1999  lukem avoid possible denial of service attack. from freebsd
 1.15  15-Nov-1998  christos delint
 1.14  26-Jul-1998  mycroft const poisoning.
 1.13  26-Jul-1998  mycroft constify some tables.
 1.12  13-Feb-1998  lukem * in get_myaddress(); always return sockaddr_in containing localhost:PMAP_PORT.
(as recommended in Weiste Venema's portmap5_beta distribution)
* deprecate register
* use memmove instead of bcopy
* KNF includes
* use err/warn() instead of perror/fprintf(stderr,)
* fix some typos
 1.11  12-Feb-1998  lukem revert; we can't break the existing ABI and API
 1.10  11-Feb-1998  lukem use u_int32_t instead of size_t...
 1.9  10-Feb-1998  lukem major cleanup (to sync with changes made in include/rpc/*.h):
* use int32_t, size_t, in_port_t instead of long, u_int, u_short as appropriate
* use uid_t and gid_t instead of int
* KNF, fix typos and spellos
* use const as appropriate
* deprecate register
* use memmove instead of bcopy
* use err/warn()
 1.8  21-Jul-1997  jtc If port provides __weak_alias(), provide an Standard C and POSIX pure
identifier namespace by renaming non standard functions and variables
such that they have a leading underscore. The library will use those
names internally. Weak aliases are used to provide the original names
to the API.

This is only the first part of this change. It is most of the functions
which are implemented in C for all NetBSD ports. Subsequent changes are
to add the same support to the remaining C files, to assembly files, and
to the automagically generated assembly source used for system calls.
When all of the above is done, ports with weak alias support should add
a definition for __weak_alias to <sys/cdefs.h>.
 1.7  13-Jul-1997  christos Fix RCSID's
Fix gcc warnings.
Add missing prototypes
 1.6  20-Dec-1996  cgd string.h for prototypes, replace K&R declarations with __P protos
 1.5  25-Feb-1995  cgd branches: 1.5.4;
save my sanity; stop using Id.
 1.4  04-Dec-1994  cgd branches: 1.4.2;
be much more careful with types, and add prototype everything.
 1.3  01-Apr-1994  cgd bad cast
 1.2  28-Mar-1994  cgd don't redefine lseek. just ... DON'T DO IT!
 1.1  07-Oct-1993  cgd move the rpc code into libc
 1.4.2.1  02-May-1995  jtc #include "namespace.h"
 1.5.4.1  16-Sep-1996  jtc snapshot namespace cleanup: rpc & xdr
 1.18.4.2  28-Jan-2003  jmc Pullup revisions 1.20-1.21 (requested by fvdl in ticket #1127)
Reset in_reclen and in_received after having received a full record
in the nonblocking case.
 1.18.4.1  06-Jan-2003  jmc Pull up revisions 1.18-1.19 (requested by fvdl in ticket #1037)
* Adapt include files for rpc_com.h/rpc_internal.h split.
* Implement non-blocking connections.
* Add rpc_control to svc.c
 1.18.2.1  11-Nov-2002  nathanw Catch up to -current
 1.24.6.2  26-Jan-2006  jdc Pull up revision 1.26 (requested by christos in ticket #1128).

PR/32572: John Kohl: xdr_rec.c missing a bugfix for an improper security check
The correct way to check for a zero record length is to check for it
without the LAST_FRAG marker in it, since it's legal to send a LAST_FRAG
marker with 0 bytes of data.
 1.24.6.1  21-Nov-2005  tron branches: 1.24.6.1.2;
Pull up following revision(s) (requested by chs in ticket #964):
lib/libc/rpc/svc_dg.c: revision 1.11
lib/libc/rpc/clnt_dg.c: revision 1.15
lib/libc/rpc/svc_raw.c: revision 1.18
lib/libc/rpc/xdr_rec.c: revision 1.25
lib/libc/rpc/clnt_raw.c: revision 1.26
use malloc rather than mem_alloc (which is implemented using calloc)
for receive/send buffers to avoid unnecessarily anonymous memory bloat.
 1.24.6.1.2.1  26-Jan-2006  jdc Pull up revision 1.26 (requested by christos in ticket #1128).

PR/32572: John Kohl: xdr_rec.c missing a bugfix for an improper security check
The correct way to check for a zero record length is to check for it
without the LAST_FRAG marker in it, since it's legal to send a LAST_FRAG
marker with 0 bytes of data.
 1.29.8.1  13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.29.6.2  17-Aug-2008  rtr revert previous
 1.29.6.1  17-Aug-2008  rtr file xdr_rec.c was added on branch christos-time_t on 2008-08-17 10:50:51 +0000
 1.29.4.1  09-Dec-2010  riz Pull up following revision(s) (requested by dholland in ticket #1493):
lib/libc/rpc/xdr_rec.c: revision 1.31
PR/44132: Wolfgang Stukenbrock: libc/rpc may overwrite not-allocated memory
Return XPRT_DIED when realloc fails for lack of a better error.
 1.31.8.1  14-Mar-2013  riz Pull up following revision(s) (requested by tron in ticket #843):
lib/libc/rpc/clnt_dg.c: revision 1.28
lib/libc/rpc/xdr_sizeof.c: revision 1.5
lib/libc/rpc/pmap_getport.c: revision 1.19
lib/libc/rpc/xdr_mem.c: revision 1.19
lib/libc/rpc/svc_run.c: revision 1.22
lib/libc/rpc/bindresvport.c: revision 1.25
lib/libc/rpc/svc_raw.c: revision 1.24
lib/libc/rpc/svc_dg.c: revision 1.17
lib/libc/rpc/getnetconfig.c: revision 1.21
lib/libc/rpc/auth_unix.c: revision 1.25
lib/libc/rpc/svc_auth.c: revision 1.17
lib/libc/rpc/clnt_vc.c: revision 1.21
lib/libc/rpc/svc_auth_unix.c: revision 1.21
lib/libc/rpc/rpcb_st_xdr.c: revision 1.10
lib/libc/rpc/pmap_getmaps.c: revision 1.18
lib/libc/rpc/getnetpath.c: revision 1.17
lib/libc/rpc/clnt_simple.c: revision 1.32
lib/libc/rpc/authunix_prot.c: revision 1.16
lib/libc/rpc/svc_dg.h: revision 1.2
lib/libc/rpc/svc_generic.c: revision 1.15
lib/libc/rpc/clnt_raw.c: revision 1.32
lib/libc/rpc/xdr_array.c: revision 1.19
lib/libc/rpc/pmap_prot.c: revision 1.12
lib/libc/rpc/clnt_bcast.c: revision 1.26
lib/libc/rpc/xdr_rec.c: revision 1.35
lib/libc/rpc/svc.c: revision 1.34
lib/libc/rpc/DISCLAIMER: revision 1.3
lib/libc/rpc/clnt_generic.c: revision 1.30
lib/libc/rpc/xdr.c: revision 1.33
lib/libc/rpc/auth_none.c: revision 1.16
lib/libc/rpc/pmap_rmt.c: revision 1.34
lib/libc/rpc/rpc_callmsg.c: revision 1.20
lib/libc/rpc/clnt_perror.c: revision 1.30
lib/libc/rpc/xdr_stdio.c: revision 1.19
lib/libc/rpc/rpc_commondata.c: revision 1.9
lib/libc/rpc/pmap_prot2.c: revision 1.17
lib/libc/rpc/pmap_clnt.c: revision 1.19
lib/libc/rpc/svc_simple.c: revision 1.33
lib/libc/rpc/rpcb_clnt.c: revision 1.29
lib/libc/rpc/rpc_prot.c: revision 1.21
lib/libc/rpc/rpc_dtablesize.c: revision 1.16
lib/libc/rpc/rpc_generic.c: revision 1.28
lib/libc/rpc/xdr_reference.c: revision 1.18
lib/libc/rpc/rpc_soc.c: revision 1.18
lib/libc/rpc/svc_vc.c: revision 1.30
lib/libc/rpc/getrpcent.c: revision 1.23
lib/libc/rpc/xdr_float.c: revision 1.38
lib/libc/rpc/rpcb_prot.c: revision 1.11
lib/libc/rpc/getrpcport.c: revision 1.18
Replace previous Sun Microsystems, Inc. license with a standard
BSD 3-clause license granted by Oracle America, Inc..
This license change was approved by Wim Coekaerts, Senior Vice President,
Linux and Virtualization at Oracle Corporation.
This fixes PR lib/45293 by Pedro Giffuni.
 1.31.6.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.31.6.1  17-Apr-2012  yamt sync with head
 1.33.2.1  23-Jun-2013  tls resync from head
 1.36.16.1  10-Jun-2019  christos Sync with HEAD
 1.36.14.1  28-Jul-2018  pgoyette Sync with HEAD

RSS XML Feed