[ovs-dev] [PATCH] dpif-netlink: fix using uninitialized info.tc_modify_flow_deleted in out label
wangyunjian
wangyunjian at huawei.com
Sat Dec 26 09:51:55 UTC 2020
From: Lvmengfan <lvmengfan at huawei.com>
Before info.tc_modify_flow_deleted is assigned a value, error processing
of other statements goes to the out label. In the out label, the
uninitialized variant is used for condition determination, which may
cause uncertain behavior.
Fixes: 65b84d4a32bd ("dpif-netlink: avoid netlink modify flow put op failed after tc modify flow put op failed.")
Signed-off-by: Lvmengfan <lvmengfan at huawei.com>
---
lib/dpif-netlink.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/dpif-netlink.c b/lib/dpif-netlink.c
index ff8ca0b..8ee6061 100644
--- a/lib/dpif-netlink.c
+++ b/lib/dpif-netlink.c
@@ -2012,6 +2012,8 @@ parse_flow_put(struct dpif_netlink *dpif, struct dpif_flow_put *put)
return EOPNOTSUPP;
}
+ info.tc_modify_flow_deleted = false;
+
/* Get tunnel dst port */
NL_ATTR_FOR_EACH(nla, left, put->actions, put->actions_len) {
if (nl_attr_type(nla) == OVS_ACTION_ATTR_OUTPUT) {
@@ -2039,7 +2041,6 @@ parse_flow_put(struct dpif_netlink *dpif, struct dpif_flow_put *put)
info.dpif_class = dpif_class;
info.tp_dst_port = dst_port;
info.tunnel_csum_on = csum_on;
- info.tc_modify_flow_deleted = false;
err = netdev_flow_put(dev, &match,
CONST_CAST(struct nlattr *, put->actions),
put->actions_len,
--
1.8.3.1
More information about the dev
mailing list