fdwalk should return 0 on an empty directory
[kopensolaris-gnu/glibc.git] / sunrpc / xdr_ref.c
index 911892e..bc5f72d 100644 (file)
@@ -44,6 +44,12 @@ static char sccsid[] = "@(#)xdr_reference.c 1.11 87/08/11 SMI";
 #include <string.h>
 #include <rpc/types.h>
 #include <rpc/xdr.h>
+#include <libintl.h>
+
+#ifdef USE_IN_LIBIO
+# include <wchar.h>
+# include <libio/iolibio.h>
+#endif
 
 #define LASTUNSIGNED   ((u_int)0-1)
 
@@ -73,13 +79,13 @@ xdr_reference (xdrs, pp, size, proc)
        return TRUE;
 
       case XDR_DECODE:
-       *pp = loc = (caddr_t) mem_alloc (size);
+       *pp = loc = (caddr_t) calloc (1, size);
        if (loc == NULL)
          {
-           (void) fputs (_("xdr_reference: out of memory\n"), stderr);
+           (void) __fxprintf (NULL, "%s",
+                              _("xdr_reference: out of memory\n"));
            return FALSE;
          }
-       bzero (loc, (int) size);
        break;
       default:
        break;
@@ -94,6 +100,7 @@ xdr_reference (xdrs, pp, size, proc)
     }
   return stat;
 }
+INTDEF(xdr_reference)
 
 
 /*
@@ -126,7 +133,7 @@ xdr_pointer (xdrs, objpp, obj_size, xdr_obj)
   bool_t more_data;
 
   more_data = (*objpp != NULL);
-  if (!xdr_bool (xdrs, &more_data))
+  if (!INTUSE(xdr_bool) (xdrs, &more_data))
     {
       return FALSE;
     }
@@ -135,5 +142,5 @@ xdr_pointer (xdrs, objpp, obj_size, xdr_obj)
       *objpp = NULL;
       return TRUE;
     }
-  return xdr_reference (xdrs, objpp, obj_size, xdr_obj);
+  return INTUSE(xdr_reference) (xdrs, objpp, obj_size, xdr_obj);
 }