diff --git a/src/parser_yin.c b/src/parser_yin.c
index 05a15be..dc48f6d 100644
--- a/src/parser_yin.c
+++ b/src/parser_yin.c
@@ -1758,7 +1758,10 @@
 
     when = calloc(1, sizeof *when);
     LY_CHECK_ERR_RET(!when, LOGMEM(ctx->xmlctx->ctx), LY_EMEM);
-    LY_CHECK_RET(lyxml_ctx_next(ctx->xmlctx));
+
+    ret = lyxml_ctx_next(ctx->xmlctx);
+    LY_CHECK_ERR_RET(ret, free(when), ret);
+
     ret = yin_parse_attribute(ctx, YIN_ARG_CONDITION, &when->cond, Y_STR_ARG, LY_STMT_WHEN);
     LY_CHECK_ERR_RET(ret, free(when), ret);
 
diff --git a/src/printer.c b/src/printer.c
index a4905c8..b324030 100644
--- a/src/printer.c
+++ b/src/printer.c
@@ -394,6 +394,8 @@
     (*out)->method.fpath.f = fopen(filepath, "w");
     if (!(*out)->method.fpath.f) {
         LOGERR(NULL, LY_ESYS, "Failed to open file \"%s\" (%s).", filepath, strerror(errno));
+        free(*out);
+        *out = NULL;
         return LY_ESYS;
     }
     (*out)->method.fpath.filepath = strdup(filepath);
diff --git a/src/tree_schema.c b/src/tree_schema.c
index d63ab06..604cce0 100644
--- a/src/tree_schema.c
+++ b/src/tree_schema.c
@@ -774,7 +774,7 @@
         LOGERR(ctx, LY_EINVAL, "Invalid schema input format.");
         break;
     }
-    LY_CHECK_RET(ret, NULL);
+    LY_CHECK_GOTO(ret, error);
 
     /* make sure that the newest revision is at position 0 */
     lysp_sort_revisions(submod->revs);
@@ -841,7 +841,7 @@
     LY_ARRAY_SIZE_TYPE u, v;
     struct lys_yang_parser_ctx *yangctx = NULL;
     struct lys_yin_parser_ctx *yinctx = NULL;
-    struct lys_parser_ctx *pctx;
+    struct lys_parser_ctx *pctx = NULL;
 
     LY_CHECK_ARG_RET(ctx, ctx, data, NULL);
 
@@ -862,7 +862,7 @@
         LOGERR(ctx, LY_EINVAL, "Invalid schema input format.");
         break;
     }
-    LY_CHECK_ERR_RET(ret, lys_module_free(mod, NULL), NULL);
+    LY_CHECK_GOTO(ret, error);
 
     /* make sure that the newest revision is at position 0 */
     lysp_sort_revisions(mod->parsed->revs);
@@ -982,7 +982,9 @@
     ly_set_rm(&ctx->list, mod, NULL);
 error:
     lys_module_free(mod, NULL);
-    ly_set_erase(&pctx->tpdfs_nodes, NULL);
+    if (pctx) {
+        ly_set_erase(&pctx->tpdfs_nodes, NULL);
+    }
     if (format == LYS_IN_YANG) {
         yang_parser_ctx_free(yangctx);
     } else {
