Blame SOURCES/0001-coverity-fixes-rh1938776.patch

2db7d2
From 5ab3bf7122eafe3bf06b147f8d936a976fe810ba Mon Sep 17 00:00:00 2001
2db7d2
From: Beniamino Galvani <bgalvani@redhat.com>
2db7d2
Date: Tue, 25 May 2021 14:18:10 +0200
2db7d2
Subject: [PATCH 1/4] route/cls: fix cgroup's clone() function
2db7d2
2db7d2
The destination object doesn't have to be allocated because it's
2db7d2
passed as _dst argument. Also, the function doesn't have to copy plain
2db7d2
fields.
2db7d2
2db7d2
(cherry picked from commit 30552e849c38972dd11fafbb8085924987b002cc)
2db7d2
---
2db7d2
 lib/route/cls/cgroup.c | 15 +++++----------
2db7d2
 1 file changed, 5 insertions(+), 10 deletions(-)
2db7d2
2db7d2
diff --git a/lib/route/cls/cgroup.c b/lib/route/cls/cgroup.c
2db7d2
index b145261825f2..2461d22fd595 100644
2db7d2
--- a/lib/route/cls/cgroup.c
2db7d2
+++ b/lib/route/cls/cgroup.c
2db7d2
@@ -36,17 +36,12 @@ static struct nla_policy cgroup_policy[TCA_CGROUP_MAX+1] = {
2db7d2
 
2db7d2
 static int cgroup_clone(void *_dst, void *_src)
2db7d2
 {
2db7d2
-	struct rtnl_cgroup *dst = NULL, *src = _src;
2db7d2
+	struct rtnl_cgroup *dst = _dst, *src = _src;
2db7d2
 
2db7d2
-	dst = calloc(1, sizeof(*dst));
2db7d2
-	if (!dst)
2db7d2
-		return -NLE_NOMEM;
2db7d2
-
2db7d2
-	dst->cg_mask = src->cg_mask;
2db7d2
-	dst->cg_ematch = rtnl_ematch_tree_clone(src->cg_ematch);
2db7d2
-	if (!dst) {
2db7d2
-		free(dst);
2db7d2
-		return -NLE_NOMEM;
2db7d2
+	if (src->cg_ematch) {
2db7d2
+		dst->cg_ematch = rtnl_ematch_tree_clone(src->cg_ematch);
2db7d2
+		if (!dst->cg_ematch)
2db7d2
+			return -NLE_NOMEM;
2db7d2
 	}
2db7d2
 
2db7d2
 	return 0;
2db7d2
-- 
2db7d2
2.31.1
2db7d2
2db7d2
2db7d2
From 6a118c6b3cf8aa8638e057a282acbf06f09c41a8 Mon Sep 17 00:00:00 2001
2db7d2
From: Beniamino Galvani <bgalvani@redhat.com>
2db7d2
Date: Tue, 25 May 2021 14:33:21 +0200
2db7d2
Subject: [PATCH 2/4] route/link: fix copy-paste error in geneve.c
2db7d2
2db7d2
(cherry picked from commit aa092d1e729acb8b4aa5a3aaf2f228f46bafec5b)
2db7d2
---
2db7d2
 lib/route/link/geneve.c | 2 +-
2db7d2
 1 file changed, 1 insertion(+), 1 deletion(-)
2db7d2
2db7d2
diff --git a/lib/route/link/geneve.c b/lib/route/link/geneve.c
2db7d2
index 7232b07f8452..9de1e8f1158f 100644
2db7d2
--- a/lib/route/link/geneve.c
2db7d2
+++ b/lib/route/link/geneve.c
2db7d2
@@ -240,7 +240,7 @@ static void geneve_dump_details(struct rtnl_link *link, struct nl_dump_params *p
2db7d2
 
2db7d2
         if (geneve->mask & GENEVE_ATTR_UDP_ZERO_CSUM6_RX) {
2db7d2
                 nl_dump(p, "      udp-zero-csum6-rx ");
2db7d2
-                if (geneve->udp_zero_csum6_tx)
2db7d2
+                if (geneve->udp_zero_csum6_rx)
2db7d2
                         nl_dump_line(p, "enabled (%#x)\n", geneve->udp_zero_csum6_rx);
2db7d2
                 else
2db7d2
                         nl_dump_line(p, "disabled\n");
2db7d2
-- 
2db7d2
2.31.1
2db7d2
2db7d2
2db7d2
From ed42caf2abdfa52fcb35416710bdcfd8189d8878 Mon Sep 17 00:00:00 2001
2db7d2
From: Beniamino Galvani <bgalvani@redhat.com>
2db7d2
Date: Tue, 25 May 2021 14:42:29 +0200
2db7d2
Subject: [PATCH 3/4] route/qdisc: fix memory leak in netem.c
2db7d2
2db7d2
'data' was leaked when returning -NLE_INVAL. Fix this by using the
2db7d2
cleanup attribute.
2db7d2
2db7d2
(cherry picked from commit d1a151eb6fe603365d93526796b3fa7e64e1c0fd)
2db7d2
---
2db7d2
 lib/route/qdisc/netem.c | 10 ++++------
2db7d2
 1 file changed, 4 insertions(+), 6 deletions(-)
2db7d2
2db7d2
diff --git a/lib/route/qdisc/netem.c b/lib/route/qdisc/netem.c
2db7d2
index 17dee3b7efa4..20df8fd413b2 100644
2db7d2
--- a/lib/route/qdisc/netem.c
2db7d2
+++ b/lib/route/qdisc/netem.c
2db7d2
@@ -26,6 +26,8 @@
2db7d2
 #include <netlink/route/qdisc.h>
2db7d2
 #include <netlink/route/qdisc/netem.h>
2db7d2
 
2db7d2
+#include "netlink-private/utils.h"
2db7d2
+
2db7d2
 /** @cond SKIP */
2db7d2
 #define SCH_NETEM_ATTR_LATENCY		0x0001
2db7d2
 #define SCH_NETEM_ATTR_LIMIT		0x0002
2db7d2
@@ -911,10 +913,10 @@ int rtnl_netem_set_delay_distribution(struct rtnl_qdisc *qdisc, const char *dist
2db7d2
 	int n = 0;
2db7d2
 	size_t i;
2db7d2
 	size_t len = 2048;
2db7d2
-	char *line;
2db7d2
+	_nl_auto_free char *line = NULL;
2db7d2
 	char name[NAME_MAX];
2db7d2
 	char dist_suffix[] = ".dist";
2db7d2
-	int16_t *data;
2db7d2
+	_nl_auto_free int16_t *data = NULL;
2db7d2
 	char *test_suffix;
2db7d2
 
2db7d2
 	/* Check several locations for the dist file */
2db7d2
@@ -955,7 +957,6 @@ int rtnl_netem_set_delay_distribution(struct rtnl_qdisc *qdisc, const char *dist
2db7d2
 			if (endp == p) break;
2db7d2
 
2db7d2
 			if (n >= MAXDIST) {
2db7d2
-				free(line);
2db7d2
 				fclose(f);
2db7d2
 				return -NLE_INVAL;
2db7d2
 			}
2db7d2
@@ -963,11 +964,8 @@ int rtnl_netem_set_delay_distribution(struct rtnl_qdisc *qdisc, const char *dist
2db7d2
 		}
2db7d2
 	}
2db7d2
 
2db7d2
-	free(line);
2db7d2
 	fclose(f);
2db7d2
-
2db7d2
 	i = rtnl_netem_set_delay_distribution_data(qdisc, data, n);
2db7d2
-	free(data);
2db7d2
 	return i;
2db7d2
 }
2db7d2
 
2db7d2
-- 
2db7d2
2.31.1
2db7d2
2db7d2
2db7d2
From f60433f575beb927b69d6a857a0345d1a3206311 Mon Sep 17 00:00:00 2001
2db7d2
From: Beniamino Galvani <bgalvani@redhat.com>
2db7d2
Date: Wed, 16 Jun 2021 11:56:25 +0200
2db7d2
Subject: [PATCH 4/4] route/qdisc: handle error of calloc()
2db7d2
2db7d2
(cherry picked from commit 26f342d09947d5884014ec4a0553c094e41c60bc)
2db7d2
---
2db7d2
 lib/route/qdisc/netem.c | 9 ++++++---
2db7d2
 1 file changed, 6 insertions(+), 3 deletions(-)
2db7d2
2db7d2
diff --git a/lib/route/qdisc/netem.c b/lib/route/qdisc/netem.c
2db7d2
index 20df8fd413b2..ceb2ad9871d2 100644
2db7d2
--- a/lib/route/qdisc/netem.c
2db7d2
+++ b/lib/route/qdisc/netem.c
2db7d2
@@ -942,9 +942,12 @@ int rtnl_netem_set_delay_distribution(struct rtnl_qdisc *qdisc, const char *dist
2db7d2
 	if (f == NULL)
2db7d2
 		return -nl_syserr2nlerr(errno);
2db7d2
 
2db7d2
-	data = (int16_t *) calloc (MAXDIST, sizeof(int16_t));
2db7d2
-
2db7d2
-	line = (char *) calloc (sizeof(char), len + 1);
2db7d2
+	data = (int16_t *) calloc(MAXDIST, sizeof(int16_t));
2db7d2
+	line = (char *) calloc(sizeof(char), len + 1);
2db7d2
+	if (!data || !line) {
2db7d2
+	    fclose(f);
2db7d2
+	    return -NLE_NOMEM;
2db7d2
+	}
2db7d2
 
2db7d2
 	while (getline(&line, &len, f) != -1) {
2db7d2
 		char *p, *endp;
2db7d2
-- 
2db7d2
2.31.1
2db7d2