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
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.

* 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++

  [ 1 ] Bug #481388 - svc_req ABI incompatibility between glibc and libtirpc

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

More information about the package-announce mailing list