- diff --git a/libtirpc/src/xdr.c b/libtirpc/src/xdr.c
- index 46c1b34..add9b2e 100644
- --- a/libtirpc/src/xdr.c
- +++ b/libtirpc/src/xdr.c
- @@ -603,6 +603,25 @@ xdr_bytes(xdrs, cpp, sizep, maxsize)
- case XDR_FREE:
- if (sp != NULL) {
- +#if 1
- + /*
- + * gisburn: Hacked workaround for crashes with NFSv4
- + * referrals on Win10/32bit (64bit is not affected)
- + * Somehow we come from auth_none.c, and at XDR_FREE
- + * time we have a |(char *)0x1| pointer with
- + * |nodesize==0|
- + */
- + if (nodesize == 0) {
- + (void)fprintf(stderr,
- + "xdr_bytes: "
- + "XDR_FREE with nodesize==0, "
- + "xdrs=0x%p, cpp=0x%p, sp=0x%p, "
- + "maxsize=%ld\n",
- + xdrs, cpp, sp, (long)maxsize);
- + *cpp = NULL;
- + return (TRUE);
- + }
- +#endif
- mem_free(sp, nodesize);
- *cpp = NULL;
- }
Workaround for Win10/32bit crashes with referrals
Posted by Anonymous on Mon 28th Oct 2024 19:39
raw | new post
Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.