Hello community, here is the log from the commit of package librpcsecgss checked in at Fri Jun 2 12:13:58 CEST 2006. -------- --- librpcsecgss/librpcsecgss.changes 2006-01-25 21:37:43.000000000 +0100 +++ librpcsecgss/librpcsecgss.changes 2006-05-30 16:36:02.000000000 +0200 @@ -1,0 +2,5 @@ +Tue May 30 16:35:32 CEST 2006 - okir@suse.de + +- Fix for 64bit issues on big-endian machines (#172605) + +------------------------------------------------------------------- New: ---- librpcsecgss-0.7-64bit.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ librpcsecgss.spec ++++++ --- /var/tmp/diff_new_pack.NvCRGf/_old 2006-06-02 12:13:50.000000000 +0200 +++ /var/tmp/diff_new_pack.NvCRGf/_new 2006-06-02 12:13:50.000000000 +0200 @@ -1,11 +1,11 @@ # # spec file for package librpcsecgss (Version 0.7) # -# Copyright (c) 2005 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine # package are under the same license as the package itself. # -# Please submit bugfixes or comments via http://bugs.opensuse.org +# Please submit bugfixes or comments via http://bugs.opensuse.org/ # # norootforbuild @@ -13,15 +13,16 @@ Name: librpcsecgss BuildRequires: krb5-devel libgssapi pkgconfig URL: http://www.citi.umich.edu/projects/nfsv4/linux -Summary: Library implementing GSSAPI security for ONC RPC +Summary: Library Implementing GSSAPI Security for ONC RPC Version: 0.7 -Release: 1 +Release: 13 Group: Development/Libraries/C and C++ License: Other License(s), see package, BSD BuildRoot: %{_tmppath}/%{name}-%{version}-build Autoreqprov: on BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: http://www.citi.umich.edu/projects/nfsv4/linux/librpcsecgss/librpcsecgss-%{version}.tar.bz2 +Patch0: librpcsecgss-0.7-64bit.patch Requires: libgssapi %description @@ -38,6 +39,7 @@ %prep %setup -q +%patch0 -p1 %build %{?suse_update_config:%{suse_update_config -f }} @@ -61,6 +63,8 @@ %{_libdir}/pkgconfig/librpcsecgss.pc %changelog -n librpcsecgss +* Tue May 30 2006 - okir@suse.de +- Fix for 64bit issues on big-endian machines (#172605) * Wed Jan 25 2006 - mls@suse.de - converted neededforbuild to BuildRequires * Mon Dec 12 2005 - okir@suse.de ++++++ librpcsecgss-0.7-64bit.patch ++++++ Subject: Fixes for s390x The XDR code in librpcsecgss mixes u_int and size_t quite freely, which is okay and 32bit, and sort of works by accident on little-endian CPUs (at least for encoding). This is a backport from upstream. Acked-by: okir@suse.de --- librpcsecgss-0.7/src/authgss_prot.c.orig 2006-05-30 07:11:22.000000000 +0200 +++ librpcsecgss-0.7/src/authgss_prot.c 2006-05-30 07:35:16.000000000 +0200 @@ -51,13 +51,16 @@ bool_t xdr_rpc_gss_cred(XDR *xdrs, struct rpc_gss_cred *p) { bool_t xdr_stat; + u_int clen = p->gc_ctx.length; /* size_t => u_int */ xdr_stat = (xdr_u_int(xdrs, &p->gc_v) && xdr_enum(xdrs, (enum_t *)&p->gc_proc) && xdr_u_int(xdrs, &p->gc_seq) && xdr_enum(xdrs, (enum_t *)&p->gc_svc) && xdr_bytes(xdrs, (char **)&p->gc_ctx.value, - &p->gc_ctx.length, MAX_AUTH_BYTES)); + &clen, MAX_AUTH_BYTES)); + + p->gc_ctx.length = clen; /* u_int => size_t */ AUTHGSS_DEBUG(1, ("xdr_rpc_gss_cred: %s %s " "(v %d, proc %d, seq %d, svc %d, ctx %p:%d)", @@ -73,13 +76,15 @@ bool_t xdr_rpc_gss_init_args(XDR *xdrs, gss_buffer_desc *p) { bool_t xdr_stat; - int length = p->length + 1024; + u_int plen = p->length; /* size_t => u_int */ + u_int length = plen + 1024; AUTHGSS_DEBUG(1, ("xdr_rpc_gss_init_args: length = %d\n", length)); - xdr_stat = xdr_bytes(xdrs, (char **)&p->value, &p->length, + xdr_stat = xdr_bytes(xdrs, (char **)&p->value, &plen, (xdrs->x_op == XDR_DECODE && p->value == NULL) - ? (unsigned int) -1 : (unsigned int) length); + ? (unsigned int) -1 : length); + p->length = plen; /* u_int => size_t */ AUTHGSS_DEBUG(1, ("xdr_rpc_gss_init_args: %s %s (token %p:%d)", (xdrs->x_op == XDR_ENCODE) ? "encode" : "decode", @@ -94,21 +99,25 @@ xdr_rpc_gss_init_res(XDR *xdrs, struct r { bool_t xdr_stat; - int ctx_length = p->gr_ctx.length + 1024; - int tok_length = p->gr_token.length + 1024; + u_int clen = p->gr_ctx.length; /* size_t => u_int */ + u_int tlen = p->gr_token.length; /* size_t => u_int */ + u_int ctx_length = clen + 1024; + u_int tok_length = tlen + 1024; xdr_stat = (xdr_bytes(xdrs, (char **)&p->gr_ctx.value, - &p->gr_ctx.length, (xdrs->x_op == XDR_DECODE && + &clen, (xdrs->x_op == XDR_DECODE && p->gr_ctx.value == NULL) ? (unsigned int) -1 : - (unsigned int) ctx_length) && + ctx_length) && xdr_u_int(xdrs, &p->gr_major) && xdr_u_int(xdrs, &p->gr_minor) && xdr_u_int(xdrs, &p->gr_win) && xdr_bytes(xdrs, (char **)&p->gr_token.value, - &p->gr_token.length, (xdrs->x_op == XDR_DECODE && + &tlen, (xdrs->x_op == XDR_DECODE && p->gr_token.value == NULL) ? (unsigned int) -1 : - (unsigned int) tok_length)); + tok_length)); + p->gr_ctx.length = clen; /* u_int => size_t */ + p->gr_token.length = tlen; /* u_int => size_t */ AUTHGSS_DEBUG(1, ("xdr_rpc_gss_init_res %s %s " "(ctx %p:%d, maj %d, min %d, win %d, token %p:%d)", (xdrs->x_op == XDR_ENCODE) ? "encode" : "decode", ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit-unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit-help@opensuse.org
participants (1)
-
root@suse.de