diff --git a/lib/sec_xdr.c b/lib/sec_xdr.c index fe5f038..6239b6c 100644 --- a/lib/sec_xdr.c +++ b/lib/sec_xdr.c @@ -223,7 +223,7 @@ bool_t copyin(void *data, xdrproc_t proc, void** copy, u_int *size) sec_xdrmem_create(&xdr, (char *)xdr_data, length, XDR_ENCODE); // cast to void* - function can go both ways (xdr->x_op) - if (proc(&xdr, data)) { + if (proc(&xdr, data, 0)) { *copy = xdr_data; if (size) *size = length; return (TRUE); @@ -261,7 +261,7 @@ bool_t copyout(const void *copy, u_int size, xdrproc_t proc, void **data, u_int if (!sec_xdr_arena_init(&arena, &xdr, length_out ? length_out : length_required, length_out ? *data : NULL)) return (FALSE); - if (proc(&xdr, data)) + if (proc(&xdr, data, 0)) { *length = length_required; return (TRUE); @@ -284,7 +284,7 @@ bool_t copyout_chunked(const void *copy, u_int size, xdrproc_t proc, void **data void *data_out = NULL; - if (proc(&xdr, &data_out)) + if (proc(&xdr, &data_out, 0)) { *data = data_out; return (TRUE); diff --git a/lib/sec_xdr_array.c b/lib/sec_xdr_array.c index 152a71b..e5ec1ad 100644 --- a/lib/sec_xdr_array.c +++ b/lib/sec_xdr_array.c @@ -147,7 +147,7 @@ sec_xdr_array(XDR *xdrs, uint8_t **addrp, u_int *sizep, u_int maxsize, u_int els for (i = 0; (i < c) && stat; i++) { if ((xdrs->x_op == XDR_DECODE) && sizeof_alloc) memset(obj, 0, elsize); - stat = (*elproc)(xdrs, target); + stat = (*elproc)(xdrs, target, 0); if ((xdrs->x_op == XDR_ENCODE) || !sizeof_alloc) target += elsize; } diff --git a/lib/sec_xdr_reference.c b/lib/sec_xdr_reference.c index a66fb37..ab5b4c4 100644 --- a/lib/sec_xdr_reference.c +++ b/lib/sec_xdr_reference.c @@ -121,7 +121,7 @@ sec_xdr_reference(XDR *xdrs, uint8_t **pp, u_int size, xdrproc_t proc) break; } - stat = (*proc)(xdrs, loc); + stat = (*proc)(xdrs, loc, 0); if (xdrs->x_op == XDR_FREE) { sec_mem_free(xdrs, loc, size); diff --git a/lib/sec_xdr_sizeof.c b/lib/sec_xdr_sizeof.c index a18bcd0..8c33dbc 100644 --- a/lib/sec_xdr_sizeof.c +++ b/lib/sec_xdr_sizeof.c @@ -190,7 +190,7 @@ sec_xdr_sizeof_in(func, data) sec_xdr_arena_allocator_t size_alloc; sec_xdr_arena_init_size_alloc(&size_alloc, &x); - stat = func(&x, data); + stat = func(&x, data, 0); if (x.x_private) free(x.x_private); return (stat == TRUE ? (unsigned) x.x_handy: 0); @@ -210,7 +210,7 @@ sec_xdr_sizeof_out(copy, size, func, data) sec_xdr_arena_allocator_t size_alloc; sec_xdr_arena_init_size_alloc(&size_alloc, &x); - stat = func(&x, data); + stat = func(&x, data, 0); if (size_alloc.data) free(size_alloc.data); return (stat == TRUE ? (unsigned long)size_alloc.offset : 0);