From 97d754cf27798bc19ccdf8ce6d6b5b878e4d2c25 Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Thu, 25 Oct 2018 12:24:30 +0200 Subject: [PATCH] rdma: Don't pass garbage to rd_check_is_filtered() Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1602555 Upstream Status: iproute2.git commit cdefe1d8e472f commit cdefe1d8e472f3a69d5f54d90092b9b50961bf91 Author: Phil Sutter Date: Thu Oct 18 14:35:50 2018 +0200 rdma: Don't pass garbage to rd_check_is_filtered() Variables 'src_port' and 'dst_port' are initialized only if attributes RDMA_NLDEV_ATTR_RES_SRC_ADDR or RDMA_NLDEV_ATTR_RES_DST_ADDR are present. Make sure to pass them over to rd_check_is_filtered() only if that is the case. Fixes: 9a362cc71a455 ("rdma: Add CM_ID resource tracking information") Signed-off-by: Phil Sutter Signed-off-by: Stephen Hemminger --- rdma/res.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/rdma/res.c b/rdma/res.c index 074b992..0d8c1c3 100644 --- a/rdma/res.c +++ b/rdma/res.c @@ -621,6 +621,8 @@ static int res_cm_id_parse_cb(const struct nlmsghdr *nlh, void *data) if (rd_check_is_string_filtered(rd, "src-addr", src_addr_str)) continue; + if (rd_check_is_filtered(rd, "src-port", src_port)) + continue; } if (nla_line[RDMA_NLDEV_ATTR_RES_DST_ADDR]) { @@ -630,14 +632,10 @@ static int res_cm_id_parse_cb(const struct nlmsghdr *nlh, void *data) if (rd_check_is_string_filtered(rd, "dst-addr", dst_addr_str)) continue; + if (rd_check_is_filtered(rd, "dst-port", dst_port)) + continue; } - if (rd_check_is_filtered(rd, "src-port", src_port)) - continue; - - if (rd_check_is_filtered(rd, "dst-port", dst_port)) - continue; - if (nla_line[RDMA_NLDEV_ATTR_RES_PID]) { pid = mnl_attr_get_u32( nla_line[RDMA_NLDEV_ATTR_RES_PID]); -- 1.8.3.1