about summary refs log tree commit diff
path: root/sunrpc/xdr_ref.c
diff options
context:
space:
mode:
Diffstat (limited to 'sunrpc/xdr_ref.c')
-rw-r--r--sunrpc/xdr_ref.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/sunrpc/xdr_ref.c b/sunrpc/xdr_ref.c
index bc5f72d6a6..ab706d7f84 100644
--- a/sunrpc/xdr_ref.c
+++ b/sunrpc/xdr_ref.c
@@ -79,13 +79,19 @@ xdr_reference (xdrs, pp, size, proc)
 	return TRUE;
 
       case XDR_DECODE:
-	*pp = loc = (caddr_t) calloc (1, size);
+	*pp = loc = (caddr_t) mem_alloc (size);
 	if (loc == NULL)
 	  {
-	    (void) __fxprintf (NULL, "%s",
-			       _("xdr_reference: out of memory\n"));
+#ifdef USE_IN_LIBIO
+	    if (_IO_fwide (stderr, 0) > 0)
+	      (void) __fwprintf (stderr, L"%s",
+				 _("xdr_reference: out of memory\n"));
+	    else
+#endif
+	      (void) fputs (_("xdr_reference: out of memory\n"), stderr);
 	    return FALSE;
 	  }
+	__bzero (loc, (int) size);
 	break;
       default:
 	break;