lyb BUGFIX memory leak
diff --git a/src/parser_lyb.c b/src/parser_lyb.c
index 783f496..9ea6397 100644
--- a/src/parser_lyb.c
+++ b/src/parser_lyb.c
@@ -49,6 +49,10 @@
{
LY_ARRAY_COUNT_TYPE u;
+ if (!ctx) {
+ return;
+ }
+
LY_ARRAY_FREE(ctx->siblings);
LY_ARRAY_FREE(ctx->models);
@@ -65,6 +69,10 @@
{
struct lyd_lyb_ctx *ctx = (struct lyd_lyb_ctx *)lydctx;
+ if (!lydctx) {
+ return;
+ }
+
lyd_ctx_free(lydctx);
lylyb_ctx_free(ctx->lybctx);
free(ctx);
diff --git a/src/printer_lyb.c b/src/printer_lyb.c
index 557ae13..ff64a81 100644
--- a/src/printer_lyb.c
+++ b/src/printer_lyb.c
@@ -1290,9 +1290,9 @@
const struct ly_ctx *ctx = root ? LYD_CTX(root) : NULL;
lybctx = calloc(1, sizeof *lybctx);
- LY_CHECK_ERR_RET(!lybctx, LOGMEM(ctx), LY_EMEM);
+ LY_CHECK_ERR_GOTO(!lybctx, LOGMEM(ctx); ret = LY_EMEM, cleanup);
lybctx->lybctx = calloc(1, sizeof *lybctx->lybctx);
- LY_CHECK_ERR_RET(!lybctx->lybctx, LOGMEM(ctx), LY_EMEM);
+ LY_CHECK_ERR_GOTO(!lybctx->lybctx, LOGMEM(ctx); ret = LY_EMEM, cleanup);
lybctx->print_options = options;
if (root) {