X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/5c19dc3ae3bd8e40a9c028b0deddd50ff337692c..dd5fb164cf5b32c462296bc65e289e100f74b59a:/OSX/libsecurityd/lib/sec_xdr_array.c?ds=sidebyside diff --git a/OSX/libsecurityd/lib/sec_xdr_array.c b/OSX/libsecurityd/lib/sec_xdr_array.c index 8d81b797..a0f710f1 100644 --- a/OSX/libsecurityd/lib/sec_xdr_array.c +++ b/OSX/libsecurityd/lib/sec_xdr_array.c @@ -129,8 +129,9 @@ sec_xdr_array(XDR *xdrs, uint8_t **addrp, u_int *sizep, u_int maxsize, u_int els return (FALSE); if (!target) target = &obj[0]; - if (!sizeof_alloc) + if (!sizeof_alloc && addrp != NULL) { *addrp = target; + } break; case XDR_FREE: @@ -155,7 +156,7 @@ sec_xdr_array(XDR *xdrs, uint8_t **addrp, u_int *sizep, u_int maxsize, u_int els /* * the array may need freeing */ - if (xdrs->x_op == XDR_FREE) { + if (xdrs->x_op == XDR_FREE && addrp != NULL) { sec_mem_free(xdrs, *addrp, nodesize); *addrp = NULL; }