From c7af8418c9a2222cde5ab3a6953b31803d0a8ef1 Mon Sep 17 00:00:00 2001
From: dzwdz
Date: Mon, 8 Aug 2022 13:12:41 +0200
Subject: user: union filesystems

---
 src/user/app/init/init.c      | 4 ++++
 src/user/app/shell/builtins.c | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

(limited to 'src/user/app')

diff --git a/src/user/app/init/init.c b/src/user/app/init/init.c
index f011ca5..c788cb6 100644
--- a/src/user/app/init/init.c
+++ b/src/user/app/init/init.c
@@ -39,6 +39,10 @@ int main(void) {
 		const char *argv[] = {"/bin/vterm", NULL};
 		execv(argv[0], (void*)argv);
 	}
+	MOUNT_AT("/union/") {
+		const char *list[] = {"/tmp/", "/init/", NULL};
+		fs_union(list);
+	}
 
 	if (fork()) {
 		/* used to trigger a kernel bug
diff --git a/src/user/app/shell/builtins.c b/src/user/app/shell/builtins.c
index 2562c18..0f06482 100644
--- a/src/user/app/shell/builtins.c
+++ b/src/user/app/shell/builtins.c
@@ -125,7 +125,7 @@ static void cmd_ls(int argc, char **argv) {
 			return;
 		}
 		for (;;) {
-			int len = fread(buf, 1, sizeof buf, file);
+			int len = fread(buf, 1, buflen, file);
 			if (len <= 0) break;
 			for (int i = 0; i < len; i++)
 				if (buf[i] == '\0') buf[i] = '\n';
-- 
cgit v1.2.3