[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