[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20201014164952.CC0C860731@lion.mk-sys.cz>
Date: Wed, 14 Oct 2020 18:49:52 +0200 (CEST)
From: Michal Kubecek <mkubecek@...e.cz>
To: netdev@...r.kernel.org
Cc: ivecera@...hat.com
Subject: [PATCH ethtool] netlink: fix allocation failure handling in
dump_features()
On allocation failure, dump_features() would set ret to -ENOMEM but then
return 0 anyway. As there is nothing to free in this case anyway, the
easiest fix is to simply return -ENOMEM rather than jumping to out_free
label - which can be dropped as well as this was its only use.
Fixes: f2c17e107900 ("netlink: add netlink handler for gfeatures (-k)")
Reported-by: Ivan Vecera <ivecera@...hat.com>
Signed-off-by: Michal Kubecek <mkubecek@...e.cz>
---
netlink/features.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/netlink/features.c b/netlink/features.c
index 3f1240437350..2a0899e6eb04 100644
--- a/netlink/features.c
+++ b/netlink/features.c
@@ -117,11 +117,9 @@ int dump_features(const struct nlattr *const *tb,
ret = prepare_feature_results(tb, &results);
if (ret < 0)
return -EFAULT;
-
- ret = -ENOMEM;
feature_flags = calloc(results.count, sizeof(feature_flags[0]));
if (!feature_flags)
- goto out_free;
+ return -ENOMEM;
/* map netdev features to legacy flags */
for (i = 0; i < results.count; i++) {
@@ -182,7 +180,6 @@ int dump_features(const struct nlattr *const *tb,
dump_feature(&results, NULL, NULL, i, name, "");
}
-out_free:
free(feature_flags);
return 0;
}
--
2.28.0
Powered by blists - more mailing lists