X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/5c19dc3ae3bd8e40a9c028b0deddd50ff337692c..7e6b461318c8a779d91381531435a68ee4e8b6ed:/OSX/libsecurityd/lib/sec_xdr_reference.c diff --git a/OSX/libsecurityd/lib/sec_xdr_reference.c b/OSX/libsecurityd/lib/sec_xdr_reference.c index 176e67a9..0ceadc0f 100644 --- a/OSX/libsecurityd/lib/sec_xdr_reference.c +++ b/OSX/libsecurityd/lib/sec_xdr_reference.c @@ -113,7 +113,7 @@ sec_xdr_reference(XDR *xdrs, uint8_t **pp, u_int size, xdrproc_t proc) memset(obj, 0, size); loc = &obj[0]; } - if (!sizeof_alloc) + if (!sizeof_alloc && pp != NULL) *pp = loc; break; } @@ -125,7 +125,9 @@ sec_xdr_reference(XDR *xdrs, uint8_t **pp, u_int size, xdrproc_t proc) if (xdrs->x_op == XDR_FREE) { sec_mem_free(xdrs, loc, size); - *pp = NULL; + if(pp) { + *pp = NULL; + } } return (stat); } @@ -143,7 +145,7 @@ sec_xdr_pointer(XDR *xdrs, uint8_t **objpp, u_int obj_size, xdrproc_t xdr_obj) bool_t sizeof_alloc = sec_xdr_arena_size_allocator(xdrs); if (! more_data) { - if ((xdrs->x_op == XDR_DECODE) && !sizeof_alloc) + if ((xdrs->x_op == XDR_DECODE) && !sizeof_alloc && objpp != NULL) *objpp = NULL; return (TRUE); }