Direct leak of 64 byte(s) in 1 object(s) allocated from:
0 0x51b1d8 in malloc (vswitchd/ovs-vswitchd+0x51b1d8)
1 0xc81ded in xmalloc__ lib/util.c:137:15
2 0xc81ded in xmalloc lib/util.c:172:12
3 0xb32153 in ofpbuf_new lib/ofpbuf.c:168:24
4 0xd563e4 in nl_sock_transact lib/netlink-socket.c:1113:34
5 0xd56261 in nl_transact lib/netlink-socket.c:1812:13
6 0xd5e096 in tc_transact lib/tc.c:238:17
7 0xd01622 in tc_del_policer_action lib/netdev-linux.c:5807:13
8 0xd2e681 in meter_tc_del_policer lib/netdev-offload-tc.c:2827:15
9 0x94ec21 in meter_offload_del lib/netdev-offload.c:245:23
10 0xcc86c4 in dpif_netlink_meter_del lib/dpif-netlink.c:4288:9
11 0x86c595 in dpif_meter_del lib/dpif.c:2014:13
12 0x663439 in free_meter_id ofproto/ofproto-dpif.c:6789:5
13 0xb47518 in ovsrcu_call_postponed lib/ovs-rcu.c:346:13
14 0xb48031 in ovsrcu_postpone_thread lib/ovs-rcu.c:362:14
15 0xb5015a in ovsthread_wrapper lib/ovs-thread.c:422:12
16 0x7f86af4081ce in start_thread (/lib64/libpthread.so.0+0x81ce)
Fixes: 5c039ddc64ff ("netdev-linux: Add functions to manipulate tc police
action")
Signed-off-by: Ilya Maximets <[email protected]>
---
lib/netdev-linux.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
index 6bdfbe88c..9e63b1242 100644
--- a/lib/netdev-linux.c
+++ b/lib/netdev-linux.c
@@ -5711,22 +5711,24 @@ tc_update_policer_action_stats(struct ofpbuf *msg,
const struct nlattr *act;
struct nlattr *prio;
struct tcamsg *tca;
- int error;
+ int error = 0;
if (!stats) {
- return 0;
+ goto exit;
}
if (NLMSG_HDRLEN + sizeof *tca > msg->size) {
VLOG_ERR_RL(&rl, "Failed to get action stats, size error");
- return EPROTO;
+ error = EPROTO;
+ goto exit;
}
tca = ofpbuf_at_assert(msg, NLMSG_HDRLEN, sizeof *tca);
act = nl_attr_find(msg, NLMSG_HDRLEN + sizeof *tca, TCA_ACT_TAB);
if (!act) {
VLOG_ERR_RL(&rl, "Failed to get action stats, can't find attribute");
- return EPROTO;
+ error = EPROTO;
+ goto exit;
}
prio = (struct nlattr *) act + 1;
@@ -5747,6 +5749,8 @@ tc_update_policer_action_stats(struct ofpbuf *msg,
}
}
+exit:
+ ofpbuf_delete(msg);
return error;
}
--
2.34.3
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev