Skip to content

Commit 9a10805

Browse files
committed
session client BUGFIX memory leak
1 parent 1d73a5a commit 9a10805

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

src/session_client.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2006,6 +2006,8 @@ recv_reply(struct nc_session *session, int timeout, struct lyd_node *op, uint64_
20062006
goto cleanup;
20072007
} else {
20082008
ERR(session, "Received an invalid message (%s).", ly_errmsg(LYD_CTX(op)));
2009+
lyd_free_tree(*envp);
2010+
*envp = NULL;
20092011
ret = NC_MSG_ERROR;
20102012
goto cleanup;
20112013
}
@@ -2045,6 +2047,7 @@ recv_reply_dup_rpc(struct nc_session *session, struct nc_rpc *rpc, struct lyd_no
20452047
lyrc = lyd_parse_op(session->ctx, NULL, in, LYD_XML, LYD_TYPE_RPC_YANG, &tree, &op2);
20462048
ly_in_free(in, 0);
20472049
if (lyrc) {
2050+
lyd_free_tree(tree);
20482051
return -1;
20492052
}
20502053

@@ -2240,6 +2243,8 @@ recv_notif(struct nc_session *session, int timeout, struct lyd_node **envp, stru
22402243
goto cleanup;
22412244
} else {
22422245
ERR(session, "Received an invalid message (%s).", ly_errmsg(session->ctx));
2246+
lyd_free_tree(*envp);
2247+
*envp = NULL;
22432248
ret = NC_MSG_ERROR;
22442249
goto cleanup;
22452250
}

0 commit comments

Comments
 (0)