BUGFIX NULL pointer dereference
diff --git a/src/printer_data.c b/src/printer_data.c
index 7853099..b74eaee 100644
--- a/src/printer_data.c
+++ b/src/printer_data.c
@@ -51,7 +51,7 @@
         break;
 #endif
     default:
-        LOGERR(root->schema->module->ctx, LY_EINVAL, "Unknown output format.");
+        LOGERR(out->ctx, LY_EINVAL, "Unknown output format.");
         ret = LY_EINVAL;
         break;
     }
diff --git a/src/printer_xml.c b/src/printer_xml.c
index 37ebc0d..5252038 100644
--- a/src/printer_xml.c
+++ b/src/printer_xml.c
@@ -144,9 +144,6 @@
                     } else {
                         /* TODO annotations r = modlist_add(&mlist, lys_main_module(attr->annotation->module)); */
                     }
-                    if (r) {
-                        goto print;
-                    }
                 }
             LYD_TREE_DFS_END(child, next, cur)}
         }
diff --git a/src/tree_data.c b/src/tree_data.c
index 7ecb5e9..a972d4c 100644
--- a/src/tree_data.c
+++ b/src/tree_data.c
@@ -194,7 +194,9 @@
 
     LY_CHECK_RET(ly_mmap(ctx, fd, &length, (void **)&addr), NULL);
     result = lyd_parse_mem_(ctx, addr ? addr : "", format, options, ap);
-    ly_munmap(addr, length);
+    if (addr) {
+        ly_munmap(addr, length);
+    }
 
     return result;
 }