From 137dcb3e207b264c467f4b2b13df2316b8b0a67c Mon Sep 17 00:00:00 2001 From: dzwdz Date: Tue, 26 Jul 2022 22:04:19 +0200 Subject: user/libc: fread, fwrite, fclose --- src/user/lib/elfload.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'src/user/lib/elfload.c') diff --git a/src/user/lib/elfload.c b/src/user/lib/elfload.c index 75c1162..b73dfe5 100644 --- a/src/user/lib/elfload.c +++ b/src/user/lib/elfload.c @@ -11,17 +11,9 @@ void elf_execf(FILE *f) { const size_t cap = 0x60000; size_t pos = 0; void *buf = malloc(cap); // TODO a way to get file size - if (!buf) goto fail; + if (buf && fread(buf, 1, cap - pos, f)) + elf_exec(buf); - while (!f->eof) { - long ret = file_read(f, buf, cap - pos); - if (ret < 0) goto fail; - pos += ret; - if (pos >= cap) goto fail; - } - elf_exec(buf); - -fail: free(buf); } -- cgit v1.2.3