about summary refs log tree commit diff
path: root/nis/nis_clone_obj.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-10-24 20:29:20 +0000
committerUlrich Drepper <drepper@redhat.com>2004-10-24 20:29:20 +0000
commit7440c23e03fac030ec163f331c1084e6bcf0c8c1 (patch)
tree4bc151c37adfde0a7b2e67e16fc6b2c9dd64c421 /nis/nis_clone_obj.c
parent1d5cee233d407b0abca1c64b2de712619c26ede4 (diff)
downloadglibc-7440c23e03fac030ec163f331c1084e6bcf0c8c1.tar.gz
glibc-7440c23e03fac030ec163f331c1084e6bcf0c8c1.tar.xz
glibc-7440c23e03fac030ec163f331c1084e6bcf0c8c1.zip
Update.
	* include/libc-symbols.h: Define hidden attribute macros for libnsl.
	* include/rpcsvc/nislib.h: Use libnsl_hidden_proto for various
	functions.
	* nis/nis_add.c: Add libnsl_hidden_def.  Minor optimizations.
	* nis/nis_call.c: Likewise.
	* nis/nis_clone_obj.c: Likewise.
	* nis/nis_defaults.c: Likewise.
	* nis/nis_domain_of_r.c: Likewise.
	* nis/nis_error.c: Likewise.
	* nis/nis_file.c: Likewise.
	* nis/nis_free.c: Likewise.
	* nis/nis_local_names.c: Likewise.
	* nis/nis_lookup.c: Likewise.
	* nis/nis_modify.c: Likewise.
	* nis/nis_print.c: Likewise.
	* nis/nis_remove.c: Likewise.
	* nis/nis_subr.c: Likewise.
	* nis/nis_table.c: Likewise.
	* nis/nis_util.c: Likewise.
	* nis/yp_xdr.c: Likewise.
	* nis/ypclnt.c: Likewise.
	* nis/ypupdate_xdr.c: Likewise.
Diffstat (limited to 'nis/nis_clone_obj.c')
-rw-r--r--nis/nis_clone_obj.c36
1 files changed, 17 insertions, 19 deletions
diff --git a/nis/nis_clone_obj.c b/nis/nis_clone_obj.c
index 82d1425081..5f9dd34b51 100644
--- a/nis/nis_clone_obj.c
+++ b/nis/nis_clone_obj.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (c) 1997, 1998, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
 
@@ -29,43 +29,41 @@ nis_clone_object (const nis_object *src, nis_object *dest)
   unsigned char *addr;
   unsigned long size;
   XDR xdrs;
-  nis_object *res;
+  nis_object *res = NULL;
 
   if (src == NULL)
     return (NULL);
 
-  size = xdr_sizeof ((xdrproc_t)_xdr_nis_object, (char *)src);
-  if ((addr = calloc(1, size)) == NULL)
+  size = xdr_sizeof ((xdrproc_t)_xdr_nis_object, (char *) src);
+  if ((addr = calloc (1, size)) == NULL)
     return NULL;
 
   if (dest == NULL)
     {
       if ((res = calloc (1, sizeof (nis_object))) == NULL)
-	{
-	  free (addr);
-	  return NULL;
-	}
+	goto out2;
     }
   else
     res = dest;
 
-  xdrmem_create(&xdrs, addr, size, XDR_ENCODE);
+  xdrmem_create (&xdrs, addr, size, XDR_ENCODE);
   if (!_xdr_nis_object (&xdrs, (nis_object *)src))
-    {
-      xdr_destroy (&xdrs);
-      free (addr);
-      return NULL;
-    }
+    goto out3;
   xdr_destroy (&xdrs);
-  xdrmem_create(&xdrs, addr, size, XDR_DECODE);
-  if (!_xdr_nis_object(&xdrs, res))
+  xdrmem_create (&xdrs, addr, size, XDR_DECODE);
+  if (!_xdr_nis_object (&xdrs, res))
     {
-      xdr_destroy (&xdrs);
-      free (addr);
-      return NULL;
+    out3:
+      if (dest == NULL)
+	free (res);
+      res = NULL;
     }
+
+ out:
   xdr_destroy (&xdrs);
+ out2:
   free (addr);
 
   return res;
 }
+libnsl_hidden_def (nis_clone_object)