commit:     ca6d97524c94cc87abce4d9b3281d6e6be646838
Author:     Sergey Popov <pinkbyte <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 12 13:02:00 2016 +0000
Commit:     Sergey Popov <pinkbyte <AT> gentoo <DOT> org>
CommitDate: Tue Apr 12 13:15:10 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ca6d9752

net-misc/quagga: revision bump

Fix NULL pointer dereference in ripd
Commited straight to stable

Reported-by: Sebastian Kricner <sebastian.kricner <AT> tuxwave.net>
Acked-by: Sergey Popov <pinkbyte <AT> gentoo.org>
Gentoo-Bug: 579386

Package-Manager: portage-2.2.28
RepoMan-Options: --force

 ...quagga-1.0.20160315-ripd-null-pointer-fix.patch | 40 ++++++++++++++++++++++
 ...160315.ebuild => quagga-1.0.20160315-r1.ebuild} |  5 ++-
 2 files changed, 44 insertions(+), 1 deletion(-)

diff --git 
a/net-misc/quagga/files/quagga-1.0.20160315-ripd-null-pointer-fix.patch 
b/net-misc/quagga/files/quagga-1.0.20160315-ripd-null-pointer-fix.patch
new file mode 100644
index 0000000..e48c304
--- /dev/null
+++ b/net-misc/quagga/files/quagga-1.0.20160315-ripd-null-pointer-fix.patch
@@ -0,0 +1,40 @@
+The rip_output_process function dereferenced a NULL
+pointer.  Core file examination showed that tmp_rinfo
+was NULL on line 2435.  Looking at the last diff
+associated with this commit, it was obvious that
+a formating mistake had been made in the loop over
+the route nodes list of possible paths.
+
+Signed-off-by: Donald Sharp <sha...@cumulusnetworks.com>
+Reported-by: Sebastian Kricner <sebastian.kric...@tuxwave.net>
+---
+ ripd/ripd.c | 14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/ripd/ripd.c b/ripd/ripd.c
+index 82b1ada..0beb0e6 100644
+--- a/ripd/ripd.c
++++ b/ripd/ripd.c
+@@ -2429,12 +2429,14 @@ rip_output_process (struct connected *ifc, struct 
sockaddr_in *to,
+         struct rip_info *tmp_rinfo = NULL;
+ 
+         for (ALL_LIST_ELEMENTS_RO (list, listnode, tmp_rinfo))
+-          if (tmp_rinfo->type == ZEBRA_ROUTE_RIP  &&
+-              tmp_rinfo->ifindex == ifc->ifp->ifindex)
+-            rinfo->metric_out = RIP_METRIC_INFINITY;
+-        if (tmp_rinfo->type == ZEBRA_ROUTE_CONNECT &&
+-              prefix_match((struct prefix *)p, ifc->address))
+-          rinfo->metric_out = RIP_METRIC_INFINITY;
++            {
++            if (tmp_rinfo->type == ZEBRA_ROUTE_RIP  &&
++                tmp_rinfo->ifindex == ifc->ifp->ifindex)
++              rinfo->metric_out = RIP_METRIC_INFINITY;
++            if (tmp_rinfo->type == ZEBRA_ROUTE_CONNECT &&
++                prefix_match((struct prefix *)p, ifc->address))
++              rinfo->metric_out = RIP_METRIC_INFINITY;
++            }
+       }
+       
+       /* Prepare preamble, auth headers, if needs be */
+-- 
+1.9.1

diff --git a/net-misc/quagga/quagga-1.0.20160315.ebuild 
b/net-misc/quagga/quagga-1.0.20160315-r1.ebuild
similarity index 96%
rename from net-misc/quagga/quagga-1.0.20160315.ebuild
rename to net-misc/quagga/quagga-1.0.20160315-r1.ebuild
index 949953c..b328a70 100644
--- a/net-misc/quagga/quagga-1.0.20160315.ebuild
+++ b/net-misc/quagga/quagga-1.0.20160315-r1.ebuild
@@ -34,7 +34,10 @@ DEPEND="${COMMON_DEPEND}
 RDEPEND="${COMMON_DEPEND}
        sys-apps/iproute2"
 
-PATCHES=( "${FILESDIR}/${PN}-0.99.22.4-ipctl-forwarding.patch" )
+PATCHES=(
+       "${FILESDIR}/${PN}-0.99.22.4-ipctl-forwarding.patch"
+       "${FILESDIR}/${PN}-1.0.20160315-ripd-null-pointer-fix.patch"
+)
 
 DISABLE_AUTOFORMATTING=1
 DOC_CONTENTS="Sample configuration files can be found in 
/usr/share/doc/${PF}/samples

Reply via email to