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) {