[Glibc-bsd-commits] r3178 - trunk/zfsutils/debian/patches

Aurelien Jarno aurel32 at alioth.debian.org
Wed Sep 1 18:58:37 UTC 2010


Author: aurel32
Date: 2010-09-01 18:58:34 +0000 (Wed, 01 Sep 2010)
New Revision: 3178

Modified:
   trunk/zfsutils/debian/patches/09_xdr_control.diff
Log:
Restore xdr_control checks


Modified: trunk/zfsutils/debian/patches/09_xdr_control.diff
===================================================================
--- trunk/zfsutils/debian/patches/09_xdr_control.diff	2010-09-01 15:59:10 UTC (rev 3177)
+++ trunk/zfsutils/debian/patches/09_xdr_control.diff	2010-09-01 18:58:34 UTC (rev 3178)
@@ -1,49 +1,40 @@
-diff -ur a/sys/cddl/compat/opensolaris/rpc/xdr.h b/sys/cddl/compat/opensolaris/rpc/xdr.h
---- a/sys/cddl/compat/opensolaris/rpc/xdr.h	2010-08-13 15:55:24.000000000 -0400
-+++ b/sys/cddl/compat/opensolaris/rpc/xdr.h	2010-08-13 15:57:13.000000000 -0400
-@@ -32,7 +32,7 @@
+--- a/sys/cddl/compat/opensolaris/rpc/xdr.h
++++ b/sys/cddl/compat/opensolaris/rpc/xdr.h
+@@ -34,6 +34,26 @@
  
- #include_next <rpc/xdr.h>
+ #ifndef _KERNEL
  
--#ifndef _KERNEL
-+#if !defined(_KERNEL) && defined(__FreeBSD__)
- 
++/* Copied from the FreeBSD version of <rpc/xdr.h> */
++#ifdef __GLIBC__
++/*
++ * These are XDR control operators
++ */
++
++#define        XDR_GET_BYTES_AVAIL     1
++#define        XDR_PEEK                2
++#define        XDR_SKIPBYTES           3
++
++struct xdr_bytesrec {
++	bool_t xc_is_last_record;
++	size_t xc_num_avail;
++};
++
++typedef struct xdr_bytesrec xdr_bytesrec;
++
++#define xdr_control(xdrs, req, op)	XDR_CONTROL(xdrs, req, op)
++#endif
++
  #include <assert.h>
  
-@@ -65,6 +65,6 @@
- 	    xdrmem_control((xdrs), (req), (op)) :			\
- 	    (*(xdrs)->x_ops->x_control)(xdrs, req, op))   
+ /*
+@@ -81,9 +81,7 @@
  
--#endif	/* !_KERNEL */
-+#endif	/* !_KERNEL && __FreeBSD__ */
+ #undef XDR_CONTROL
+ #define	XDR_CONTROL(xdrs, req, op)					\
+-	(((xdrs)->x_ops->x_control == NULL) ?				\
+-	    xdrmem_control((xdrs), (req), (op)) :			\
+-	    (*(xdrs)->x_ops->x_control)(xdrs, req, op))   
++	    (xdrmem_control((xdrs), (req), (op)))
  
- #endif	/* !_OPENSOLARIS_RPC_XDR_H_ */
-diff -ur a/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c b/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c
---- a/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c	2010-08-13 15:56:20.000000000 -0400
-+++ b/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c	2010-08-13 15:56:44.000000000 -0400
-@@ -3191,8 +3191,6 @@
- 		return (nvs_xdr_nvp_op(nvs, nvp));
- 	}
- 	case NVS_OP_DECODE: {
--		struct xdr_bytesrec bytesrec;
--
- 		/* get the encode and decode size */
- 		if (!xdr_int(xdr, &encode_len) || !xdr_int(xdr, &decode_len))
- 			return (EFAULT);
-@@ -3202,12 +3200,16 @@
- 		if (*size == 0)
- 			return (0);
+ #endif	/* !_KERNEL */
  
-+#if defined(__sun) || defined(__FreeBSD__)
-+		struct xdr_bytesrec bytesrec;
-+
- 		/* sanity check the size parameter */
- 		if (!xdr_control(xdr, XDR_GET_BYTES_AVAIL, &bytesrec))
- 			return (EFAULT);
- 
- 		if (*size > NVS_XDR_MAX_LEN(bytesrec.xc_num_avail))
- 			return (EFAULT);
-+#endif
- 		break;
- 	}
- 




More information about the Glibc-bsd-commits mailing list