cb got memory from nl_cb_alloc() but not doing free during error case and use same lable to go out from function. Signed-off-by: Amit Khatri <amit.khatri@xxxxxxxxxxx> Signed-off-by: Rahul Jain <rahul.jain@xxxxxxxxxxx> --- iw.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/iw.c b/iw.c index ec56736..a2c2795 100644 --- a/iw.c +++ b/iw.c @@ -476,13 +476,13 @@ static int __handle_cmd(struct nl80211_state *state, enum id_input idby, err = cmd->handler(state, msg, argc, argv, idby); if (err) - goto out; + goto out_free_msg; nl_socket_set_cb(state->nl_sock, s_cb); err = nl_send_auto_complete(state->nl_sock, msg); if (err < 0) - goto out; + goto out_free_msg; err = 1; @@ -493,9 +493,9 @@ static int __handle_cmd(struct nl80211_state *state, enum id_input idby, while (err > 0) nl_recvmsgs(state->nl_sock, cb); - out: - nl_cb_put(cb); + out_free_msg: + nl_cb_put(cb); nlmsg_free(msg); return err; nla_put_failure: -- 1.9.1 ��.n��������+%������w��{.n�����{���zW����ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f