From 4f68040a5c5242197bd518e3d54564addf786829 Mon Sep 17 00:00:00 2001 From: Yunjian Wang Date: Thu, 8 Apr 2021 21:33:12 +0800 Subject: [PATCH] dpif-netlink: Fix using uninitialized info.tc_modify_flow_deleted in out label. 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: Mengfan Lv Signed-off-by: Yunjian Wang Reviewed-by: Simon Horman Signed-off-by: Ilya Maximets --- lib/dpif-netlink.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/dpif-netlink.c b/lib/dpif-netlink.c index f9c732886ff..54ca8d7e62b 100644 --- a/lib/dpif-netlink.c +++ b/lib/dpif-netlink.c @@ -2047,6 +2047,7 @@ parse_flow_put(struct dpif_netlink *dpif, struct dpif_flow_put *put) uint8_t csum_on = false; int err; + info.tc_modify_flow_deleted = false; if (put->flags & DPIF_FP_PROBE) { return EOPNOTSUPP; } @@ -2092,7 +2093,6 @@ parse_flow_put(struct dpif_netlink *dpif, struct dpif_flow_put *put) info.tunnel_csum_on = csum_on; info.recirc_id_shared_with_tc = (dpif->user_features & OVS_DP_F_TC_RECIRC_SHARING); - info.tc_modify_flow_deleted = false; err = netdev_flow_put(dev, &match, CONST_CAST(struct nlattr *, put->actions), put->actions_len,