- Fix bad assumption taddr2uaddr processing that caused a segfault

(bz468014)
This commit is contained in:
Steve Dickson 2008-10-27 17:17:04 +00:00
parent 417f73f30b
commit 0815621598
2 changed files with 35 additions and 3 deletions

View File

@ -0,0 +1,25 @@
commit 338af7f9f00e096b65a6d823f885c4eeaf1d1f8c
Author: Steve Dickson <steved@redhat.com>
Date: Mon Oct 27 12:46:54 2008 -0400
__rpc_taddr2uaddr_af() assumes the netbuf to always have a
non-zero data. This is a bad assumption and can lead to a
seg-fault. This patch adds a check for zero length and returns
NULL when found.
Signed-off-by: Steve Dickson <steved@redhat.com>
diff --git a/src/rpc_generic.c b/src/rpc_generic.c
index 3aad018..27de254 100644
--- a/src/rpc_generic.c
+++ b/src/rpc_generic.c
@@ -603,6 +603,9 @@ __rpc_taddr2uaddr_af(int af, const struct netbuf *nbuf)
#endif
u_int16_t port;
+ if (nbuf->len <= 0)
+ return NULL;
+
switch (af) {
case AF_INET:
sin = nbuf->buf;

View File

@ -1,6 +1,6 @@
Name: libtirpc
Version: 0.1.9
Release: 5%{?dist}
Release: 6%{?dist}
Summary: Transport Independent RPC Library
Group: System Environment/Libraries
License: SISSL
@ -34,6 +34,7 @@ Patch01: libtirpc-0.1.9-rpc_getbroadifs-sizeof.patch
Patch02: libtirpc-0.1.9-ipv6-socket.patch
Patch03: libtirpc-0.1.9-taddr2addr-typo.patch
Patch04: libtirpc-0.1.9-warnings.patch
Patch05: libtirpc-0.1.7-taddr2uaddr-segflt.patch
Patch100: libtirpc-0.1.7-compile.patch
@ -48,6 +49,8 @@ developing programs which use the tirpc library.
%patch02 -p1
%patch03 -p1
%patch04 -p1
# 468014: rpcbind DoS in the taddr2uaddr XDR_DECODE
%patch05 -p1
%patch100 -p1
@ -146,12 +149,16 @@ rm -rf %{buildroot}
%{_mandir}/*/*
%changelog
* Mon Oct 27 2008 Steve Dickson <steved@redhat.com> 0.1.8-6
- Fix bad assumption taddr2uaddr processing that
caused a segfault (bz468014)
* Tue Sep 16 2008 Steve Dickson <steved@redhat.com> 0.1.9-5
- Fix for taddr2addr conversion bug of local addresses
- Fixed some of warnings in: src/auth_time.c, src/clnt_dg.c and
src/clnt_raw.c
src/clnt_raw.c
- Added some #ifdef NOTUSED around some code in src/rpbc_clnt.c
that was not being used...
that was not being used...
* Thu Sep 4 2008 Steve Dickson <steved@redhat.com> 0.1.9-4
- Always make IPv6 sockets V6ONLY