summaryrefslogtreecommitdiffstats
path: root/src/lib/rpc/xdr.c
Commit message (Collapse)AuthorAgeFilesLines
* Encoding cleanup: curly quotes to ASCII quotes, and some ISO-8859-1Tom Yu2010-10-081-1/+1
| | | | | | files to UTF-8. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@24446 dc483132-0cff-0310-8789-dd5450dbe970
* relicense Sun RPC to 3-clause BSD-styleTom Yu2010-09-221-23/+25
| | | | | | | | | Per e-mail from Wim Coekaerts, Oracle America authorizes the relicensing of Sun RPC to 3-clause BSD-style. ticket: 6784 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@24336 dc483132-0cff-0310-8789-dd5450dbe970
* Fix XDR decoding of large values in xdr_u_intGreg Hudson2010-07-261-1/+1
| | | | | | | | | | | | | | | | | | | Our ancient RPC value internally decodes 32-bit wire values into a signed long, which is then casted to the appropriate type. xdr_u_int() contains a check intended to catch wire values that don't fit into a u_int on platforms with 16-ints, but on platforms with 64-bit longs it was failing on values of 2^31 or larger because the sign-extended value appeared larger than UINT_MAX. Fix the check by casting the value to uint32_t before comparing. This bug, in combination with a poor choice of types in kadm_rpc_xdr.c's xdr_krb5_enctype(), prevented negative enctype values from being transported properly in kadmin's change_password command result. ticket: 6753 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@24210 dc483132-0cff-0310-8789-dd5450dbe970
* make mark-cstyleTom Yu2009-10-311-12/+12
| | | | | | make reindent git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23100 dc483132-0cff-0310-8789-dd5450dbe970
* Define valgrind macros as no-ops if not USE_VALGRIND, and use ↵Ken Raeburn2009-01-221-26/+3
| | | | | | unconditionally, per Danilo's suggestion git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@21773 dc483132-0cff-0310-8789-dd5450dbe970
* When encoding, and compiling with -DUSE_VALGRIND, explicitly get valgrind to ↵Ken Raeburn2009-01-201-0/+61
| | | | | | check the inputs git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@21766 dc483132-0cff-0310-8789-dd5450dbe970
* Fix braino in previous change to xdr_bytes. New test case forTom Yu2005-01-141-3/+2
| | | | | | | | | RPCSEC_GSS fixed-size buffers. ticket: 2877 tags: pullup git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@17039 dc483132-0cff-0310-8789-dd5450dbe970
* * authgss_prot.c (xdr_rpc_gss_wrap_data): Use xdr_alloc to avoidTom Yu2005-01-141-2/+3
| | | | | | | | | | | | | | size limit issues. Use (unsigned int)-1 instead of MAX_NETOBJ_SZ. (xdr_rpc_gss_unwrap_data): Use (unsigned int)-1 instead of MAX_NETOBJ_SZ. * xdr.c (xdr_bytes): Don't assign from *sizep if XDR_FREE, since it'll be uninitialized then. Shuts up Purify. ticket: 2877 status: open git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@17038 dc483132-0cff-0310-8789-dd5450dbe970
* * libgssrpc.exports: Don't export internalsTom Yu2004-09-171-67/+30
| | | | | | | | | | | | | | | | | | | | | | | * svc.c (svc_getreqset): * svc_tcp.c (readtcp): Don't intersperse preprocessor conditionals with braces. * auth_gssapi.c, auth_gssapi_misc.c, auth_none.c: * auth_unix.c, authunix_prot.c, bindresvport.c: * clnt_generic.c, clnt_perror.c, clnt_raw.c * clnt_simple.c, clnt_tcp.c, clnt_udp.c, get_myaddress.c: * getrpcent.c, getrpcport.c, pmap_clnt.c: * pmap_getmaps.c, pmap_getport.c, pmap_prot.c, pmap_prot2.c: * pmap_rmt.c, rpc_callmsg.c, rpc_prot.c: * svc.c, svc_auth.c, svc_auth_gss.c: * svc_auth_gssapi.c, svc_auth_unix.c, svc_raw.c: * svc_run.c, svc_simple.c, svc_tcp.c: * svc_udp.c, xdr.c, xdr_alloc.c, xdr_array.c: * xdr_float.c, xdr_mem.c, xdr_rec.c, xdr_reference.c: * xdr_stdio.c: Protoize, to avoid potential problems when fixed-width types are not ints on some platforms. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16768 dc483132-0cff-0310-8789-dd5450dbe970
* Lots of signedness and argument-casting fixes. Some arithmeticTom Yu2004-06-281-3/+6
| | | | | | paranoia for seasoning. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16526 dc483132-0cff-0310-8789-dd5450dbe970
* fix some 64-bit bugs in RPCSEC_GSSTom Yu2004-06-191-0/+2
| | | | | | | | | | | | | | | | | | | | | | | * auth_gss.h: Add prototype for xdr_rpc_gss_buf. * authgss_prot.c (xdr_rpc_gss_buf): New function. (xdr_rpc_gss_cred, xdr_rpc_gss_init_args, xdr_rpc_gss_init_res): (xdr_rpc_gss_wrap_data, xdr_rpc_gss_unwrap_data): Use xdr_rpc_gss_buf, to avoid passing a (size_t *) to a xdr_bytes(), which expects (u_int *). (xdr_rpc_gss_wrap_data): Use tmplen to avoid passing (size_t *) to xdr_u_int. * libgssrpc.exports: * rename.h: Add xdr_rpc_gss_buf. * xdr.c (xdr_enum): Fix (kind of) for 64-bit. Still inherently bogus, due to casting of (enum foo *) to (enum_t *) by callers. ticket: new component: krb5-libs git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16499 dc483132-0cff-0310-8789-dd5450dbe970
* This commit merges the RPCSEC_GSS integration branch onto the trunk.Tom Yu2004-06-161-146/+133
| | | | | | | | | | | | | | | | | | | Remaining work includes: * Default to using kadmin/fqdn for SEAM compatibility * Namespace cleanups and other API tweaks -- this API is not stable yet * Fix lib/rpc/unit-test testsuite to test RPCSEC_GSS in addition to AUTH_GSSAPI Additional work will be tracked in separate tickets. This merge is bracketed between the tags "tlyu-umich-rpc-merge-pre" and "tlyu-umich-rpc-merge-post". ticket: 2578 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16467 dc483132-0cff-0310-8789-dd5450dbe970
* * xdr.c (xdr_string): Fix off-by-one error; we're not vulnerable,Tom Yu2002-08-121-1/+1
| | | | | | since we don't call it. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@14701 dc483132-0cff-0310-8789-dd5450dbe970
* * clnt_raw, clnt_tcp.c, clnt_udp.c: Use a union structure toEzra Peisach2001-12-071-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | ensure argument alignment. * pmap_clnt.c, pmap_clnt.h (pmap_set): Change port argument to int to avoid width warnings. * rpc_callmsg.c (xdr_callmsg): Cast argument to XDR_INLINE to avoid signed vs. unsigned warning. * svc.c: Cast assignment to avoid signed warning. * xdr.c (xdr_u_short, xdr_u_long): cast pointers to long * in invocation of XDR_PUTLONG. * xdr_alloc.c (xdralloc_putbytes): Cast argument to DynInsert to avoid signed/unsigned warning. * auth_gssapi.c, svc_auth_gssapi, xdr_rec.c: Cast arguments to avoid alignment warnings. * svc_tcp.c, xdr_stdio.c: Cast argument to fread/fwrite/read/write. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@14054 dc483132-0cff-0310-8789-dd5450dbe970
* * configure.in: Add AC_TYPE_GETGROUPS to determine argument toEzra Peisach2001-07-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | getgroups. * auth_unix.c (authunix_create_default): Use GETGROUPS_T array in call to getgroups. Copy into array of int for call to authunix_create. Note: If auth_unix protection ever used with this code, we will need to cleanup assumptions in int being 32 bits in OTW transfer of gids. * clnt_tcp.c, svc_tcp.c: Change writetcp and readtcp to take char * as first argument to be compatible with xdrrec_create. * xdr.c (xdr_opaque): Cast argument in call to XDR_GETBYTES. * svc.h: Add prototype for gssrpc_svcudp_enablecache. * svc_auth_gssapi.c (_gssrpc_svcauth_gssapi): Change _svcauth_gssapi to _gssrpc_svcauth_gssapi for consistancy. * svc_auth.c: Move prototypes for _gssrpc_svcauth_{unix, null, short, gssapi} to: * svc_auth.h: here. * svc_auth_unix.c: Update _gssrpc_svcauth_short and _gssrpc_svcauth_unix to match prototype. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@13563 dc483132-0cff-0310-8789-dd5450dbe970
* * auth.h: Provide full prototype for xdr_des_blockEzra Peisach2001-06-281-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * auth_gssapi.h: Complete prototypes for _svcauth_gssapi_unset_names(). * clnt.h: Prototype dispatch functions and all functions. * clnt_perror.c: Prototype static auth_errmsg(). * clnt_raw.h clnt_tcp.c, clnt_udp.c: Provide prototypes to static functions and match dispatch table prototypes. control function takes void * instead of caddr_t. * pmap_rmt.c: Move prototype for resultproc_t to pmap_clnt.h. * rpc.h: get_myaddress returns int. Add prototypes for callrpc and getrpcport. * rpc_commondata.c (rpc_createerr): When initializing rpc_creaerr use RPC_SUCCESS instead of 0. * get_myaddress.c, rpc_dtablesize.c: Include gssrpc/rpc.h for prototype. * pmap_clnt.h, pmap_prot.h, pmap_rmt.h, rpc_msg.h: Full prototypes for all functions. * svc.c: Provide full prototype for static function. * svc.h: Prototypes for dispatch functions added. Flushed out prototypes for all functions missing prototypes. Added prototype for svcfd_create. * svc_auth.c: Prototypes for all functions referenced. * svc_auth.h: Prototype dispatch functions to svc_auth_ops. * svc_auth_any.c: Replace use of authany_wrap() with a new local function that matches svc_auth_ops dispatch table. * svc_simple.c: Provide prototype for static function universal. Fill in missing types of parameters to gssrpc_registerrpc. * svc_raw.c svc_tcp.c, svc_udp.c: Provide prototypes for static functions and match prototypes in dispatch table. Change getargs and freeargs argument to void * from caddr_t. * xdr.c (xdr_void): Function to match prototype of arguments given. * xdr.h: Provide full prototypes for xdr_ops dispatch table and xdr_void(). * svc_auth_gssapi.c, xdr_alloc.c, xdr_mem.c, xdr_rec.c, xdr_stdio.c: Provide protypes for static functions and match dispatch tables. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@13528 dc483132-0cff-0310-8789-dd5450dbe970
* * auth_gssapi.c (auth_gssapi_create): Cast const gss_OID toEzra Peisach2001-06-181-0/+4
| | | | | | | | | | gss_OID for gssapi functions. * xdr.c (xdr_u_int, xdr_int32, xdr_u_int32): If enumerated operation is not XDR_ENCODE, XDR_DECODE or XDR_FREE - return FALSE instead falling off end of function. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@13361 dc483132-0cff-0310-8789-dd5450dbe970
* * clnt_perror.c (clnt_spcreateerror): Enumerate missing cases inEzra Peisach2001-06-051-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | switch. * getrpcport.c: Include string.h for memmove() prototype and pmap_clnt.h for pmap_getport() prototype. * rpc_dtablesize.c (_gssrpc_rpc_dtablesize): Declare as returning int. * get_myaddress.c (gssrpc_get_myaddress): Likewise. * rpc_prot.c (gssrpc_xdr_accepted_reply, sunrpc_seterr_reply): Enumerate missing cases for switch. (rejected): Fix typo: RPC_VERMISMATCH -> RPC_MISMATCH for enumerated switch. * svc_auth.c: Add braces to svcauthsw[] initialization. * svc_simple.c: Include pmap_clnt.h for pmap_unset prototype. * bindresvport.c, clnt_simple.c, clnt_tcp.c, clnt_udp.c, pmap_clnt.c, pmap_getmaps.c, pmap_gtport.c, pmap_rmt.c, svc_tcp.c, svc_udp.c: Include unistd.h for close() prototype. * xdr.c (xdr_opaque): Specify internal buffer as ints. (xdr_u_int32): Declare as returning bool_t. * clnt_generic.c, rpc_callmsg.c, svc_auth_unix.c, xdr_mem.c: Include string.h for memmove() prototype. * xdr_rec.c: Include string.h for memmove() prototype. Add dummy XDR_FREE cases for switches. * xdr_reference.c (xdr_reference): Add XDR_ENCODE case. (gcc warning). * xdr_array.c (xdr_array): Likewise. * auth.h: Include gssrpc/xdr.h and provide prototype for gssrpc_xdr_opaque_auth(). * auth_gssapi.h: Add prototypes for auth_gssapi_seal_seq() and auth_gssapi_unseal_seq(). * clnt.h: Add prototype for _gssrpc_rpc_dtablesize(). * rpc.h: Add prototypes for gssrpc_get_myaddress() and gssrpc_bindresvport(). git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@13269 dc483132-0cff-0310-8789-dd5450dbe970
* * xdr.h: Flush out prototypes for xdrmem_create(),Ezra Peisach2001-02-181-2/+2
| | | | | | | | | | | | | | | | | | | xdrstdio_create(), xdrrec_create(), xdralloc_create(), xdralloc_release(), xdrrec_endofrecord(), xdrrec_skiprecord(), xdrrec_eof(), xdralloc_getdata(). Add prototype for gssrpc_xdr_fre(). * xdr.c: Argument to gssrpc_xdr_free(0 changed from char * to void *. xdr_u_char() changed to take unsigned char * instead of char *. * auth_unix.c: Include unistd.h and string.h for prototypes. Declare marshal_new_auth() as static void instead of static bool_t based on usage. * auth.h, svc_auth.h: Provide full prototypes for a number of functions. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@13010 dc483132-0cff-0310-8789-dd5450dbe970
* "Renames" in the following refer to renaming of various exportedTom Yu1998-02-141-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | functions and global variables to prefix them with "gssrpc_" or "_gssrpc" as might be appropriate. Some symbols which are unlikely to occur in vendor rpc implementations have retained their old names (notably the gssapi specific ones). * auth.h: Renames. * auth_any.c: Update header locations. * auth_gssapi.c: Punt naughty RCS keywords. Update header locations. Remove explicit extern decl of rpc_createrr (clnt.h gets it). Renames. * auth_gssapi.h: Punt naughty RCS keywords. * auth_gssapi_misc.c: Punt naught RCS keywords. Update header locations. * auth_none.c: Update header locations. Renames. * auth_unix.c: Update header locations. Renames. * auth_unix.h: Renames. * authunix_prot.c: Update header locations. * bindresvport.c: Renames. * clnt.h: Renames. * clnt_generic.c: Update header locations. * clnt_perror.c: Update header locations. * clnt_raw.c: Update header locations. Renames. * clnt_simple.c: Update header locations. Renames. * clnt_tcp.c: Update header locations. Renames. * clnt_udp.c: Upate header loations. Renames. * get_myaddress.c: Update header locations. Renames. * getrpcent.c: Update header locations. * getrpcport.c: Update header locations. Renames. * netdb.h: Update header locations. * pmap_clnt.c: Update header locations. Renames. * pmap_clnt.h: Renames. * pmap_getmaps.c: Update header locations. * pmap_getport.c: Update header locations. * pmap_prot.c: Update header locations. * pmap_prot.h: Renames. * pmap_prot2.c: Update header locations. * pmap_rmt.c: Update header locations. Renames. * pmap_rmt.h: Renames. * rpc.h: Update header locations. No longer include rpc/netdb.h. * rpc_callmsg.c: Update header locations. Renames. * rpc_commondata.c: Update header locations. * rpc_dtablesize.c: Renames. * rpc_msg.h: Renames. * rpc_prot.c: Update header locations. Renames. * svc.c: Update header locations. Renames. * svc.h: Renames. * svc_auth.c: Update header locations. Renames. * svc_auth.h: Renames. * svc_auth_any.c: Update header locations. * svc_auth_gssapi.c: Punt naughty RCS keywords. Update header locations. Renames. * svc_auth_unix.c: Renames. * svc_raw.c: Update header locations. * svc_run.c: Update header locations. Renames. * svc_simple.c: Update header locations. Renames. Make pl static. * svc_tcp.c: Update header locations. Renames. * svc_udp.c: Update header locations. Renames. * xdr.c: Update header locations. Renames. * xdr.h: Renames. * xdr_alloc.c: Punt naughty RCS keywords. Update header locations. * xdr_array.c: Update header locations. * xdr_float.c: Update header locations. * xdr_mem.c: Update header locations. * xdr_rec.c: Update header locations. * xdr_reference.c: Update header locations. * xdr_stdio.c: Update header locations. * Makefile.in: Bump major version due to changes. Don't build getrpcent.o, since we don't use it, and dealing with the rpc/netdb.h lossage was a major pain. Also, rename HDRDIR to $(BUILDTOP)/gssrpc in order to avoid problems with system headers including rpc/*.h. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@10447 dc483132-0cff-0310-8789-dd5450dbe970
* * xdr.c: Do not declare malloc()Ezra Peisach1996-07-231-1/+0
| | | | | | | * Makefile.in (SHLIB_LIBS): Link with gssapi_krb5 when creating shared library. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@8781 dc483132-0cff-0310-8789-dd5450dbe970
* this commit includes all the changes on the OV_9510_INTEGRATION andMarc Horowitz1996-07-221-0/+674
OV_MERGE branches. This includes, but is not limited to, the new openvision admin system, and major changes to gssapi to add functionality, and bring the implementation in line with rfc1964. before committing, the code was built and tested for netbsd and solaris. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@8774 dc483132-0cff-0310-8789-dd5450dbe970