[][mt76-vendor: fix coverity errors]
[Description]
Fix coverity errors
- potential NP dereference
- memory leak after using strdup()
[Release-log]
N/A
Change-Id: I3f746c06cde6dbad34f8573106739c6af1f872f9
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/5268154
diff --git a/feed/mt76-vendor/src/capi.c b/feed/mt76-vendor/src/capi.c
index 30ae162..99a2d4d 100644
--- a/feed/mt76-vendor/src/capi.c
+++ b/feed/mt76-vendor/src/capi.c
@@ -5,7 +5,7 @@
static int mt76_ap_rfeatures_set_attr(struct nl_msg *msg, int argc, char **argv)
{
- char *val,*s1,*cur;
+ char *val, *s1, *s2, *cur;
void *data;
int idx = MTK_VENDOR_ATTR_RFEATURE_CTRL_TRIG_TYPE_EN;
@@ -20,14 +20,18 @@
} else if (!strncmp(argv[0], "he_ltf", 6)) {
nla_put_u8(msg, MTK_VENDOR_ATTR_RFEATURE_CTRL_HE_LTF, strtoul(val, NULL, 0));
} else if (!strncmp(argv[0], "trig_type", 9)) {
- s1 = strdup(val);
data = nla_nest_start(msg,
MTK_VENDOR_ATTR_RFEATURE_CTRL_TRIG_TYPE_CFG | NLA_F_NESTED);
+ if (!data)
+ return -ENOMEM;
+ s1 = s2 = strdup(val);
while ((cur = strsep(&s1, ",")) != NULL)
nla_put_u8(msg, idx++, strtoul(cur, NULL, 0));
nla_nest_end(msg, data);
+
+ free(s2);
} else if (!strncmp(argv[0], "ack_policy", 10)) {
nla_put_u8(msg, MTK_VENDOR_ATTR_RFEATURE_CTRL_ACK_PLCY, strtoul(val, NULL, 0));
}