Fedora 10 Update: libtirpc-0.1.10-2.fc10
updates at fedoraproject.org
updates at fedoraproject.org
Thu Feb 5 02:16:33 UTC 2009
--------------------------------------------------------------------------------
Fedora Update Notification
FEDORA-2009-1171
2009-01-29 22:32:13
--------------------------------------------------------------------------------
Name : libtirpc
Product : Fedora 10
Version : 0.1.10
Release : 2.fc10
URL : http://nfsv4.bullopensource.org/
Summary : Transport Independent RPC Library
Description :
This package contains SunLib's implementation of transport-independent
RPC (TI-RPC) documentation. This library forms a piece of the base of
Open Network Computing (ONC), and is derived directly from the
Solaris 2.3 source.
TI-RPC is an enhanced version of TS-RPC that requires the UNIX System V
Transport Layer Interface (TLI) or an equivalent X/Open Transport Interface
(XTI). TI-RPC is on-the-wire compatible with the TS-RPC, which is supported
by almost 70 vendors on all major operating systems. TS-RPC source code
(RPCSRC 4.0) remains available from several internet sites.
--------------------------------------------------------------------------------
Update Information:
commit 2bb4c8d7ec8a98e1be9133d5901149a81ea9b5d9 Author: Chuck Lever
<chuck.lever at oracle.com> Date: Wed Jan 28 09:19:07 2009 -0500
backwards compatibility: fix order of fields in TI-RPC's svc_req
Preserve ABI compatibility between glibc's RPC implementation and the
legacy RPC implementation in libtirpc by moving the rq_xprt field in the
TI-RPC version of the svc_req struct so it is backwards compatible with the
legacy version of this structure. Linux's legacy svc_req struct, from
/usr/include/rpc/svc.h, looks like this: struct svc_req {
rpcprog_t rq_prog; /* service program number */ rpcvers_t
rq_vers; /* service protocol version */ rpcproc_t rq_proc;
/* the desired procedure */ struct opaque_auth rq_cred; /* raw
creds from the wire */ caddr_t rq_clntcred; /* read only
cooked cred */ SVCXPRT *rq_xprt; /* associated transport */
}; The new TI-RPC svc_req struct, from /usr/include/tirpc/rpc/svc.h,
looks like this: struct svc_req { u_int32_t rq_prog;
/* service program number */ u_int32_t rq_vers; /* service
protocol version */ u_int32_t rq_proc; /* the desired
procedure */ struct opaque_auth rq_cred; /* raw creds from the wire
*/ void *rq_clntcred; /* read only cooked cred */
caddr_t rq_clntname; /* read only client name */ caddr_t
rq_svcname; /* read only cooked service cred */ SVCXPRT
*rq_xprt; /* associated transport */ }; Note the extra
fields rq_clntname and rq_svcname. These are used for TI-RPC's RPCSEC GSS
flavor support. This issue came to light because rpc.statd still uses
only legacy RPC calls, and thus includes /usr/include/rpc/svc.h. However,
other parts of nfs-utils now link with TI-RPC, so the legacy RPC functions
in libtirpc are used in favor of glibc's RPC functions. The libtirpc svc
functions use the new svc_req struct, but rpc.statd uses the old svc_req
struct. Since the svc_req fields were different, rpc.statd broke
after recent IPv6-related changes, even though I hadn't made any changes to
it. Note that rpc.mountd also references the rq_xprt field, so it has the
same issue. In most operating systems, there is only one rpc/svc.h
and one version of svc_req so this is not a problem. We should audit all
of the structures and functions under /usr/include/rpc and
/usr/include/tirpc/rpc to ensure we have a reasonable level of backwards
compatibility until such a time it is decided to merge these
implementations or get rid of RPC support in glibc.
--------------------------------------------------------------------------------
ChangeLog:
* Wed Jan 28 2009 Steve Dickson <steved at redhat.com> 0.1.10-2
- backwards compatibility: fix order of fields in TI-RPC's
svc_req (bz 481388)
- Removed a number warnings.
- Header file fixes for C++
--------------------------------------------------------------------------------
References:
[ 1 ] Bug #481388 - svc_req ABI incompatibility between glibc and libtirpc
https://bugzilla.redhat.com/show_bug.cgi?id=481388
--------------------------------------------------------------------------------
This update can be installed with the "yum" update program. Use
su -c 'yum update libtirpc' at the command line.
For more information, refer to "Managing Software with yum",
available at http://docs.fedoraproject.org/yum/.
All packages are signed with the Fedora Project GPG key. More details on the
GPG keys used by the Fedora Project can be found at
http://fedoraproject.org/keys
--------------------------------------------------------------------------------
More information about the Fedora-package-announce
mailing list