From a23b188480d9f81a30a8a70c3727cc8e95d1ba29 Mon Sep 17 00:00:00 2001 From: Elliot Sayes Date: Thu, 12 Dec 2024 17:02:02 +0800 Subject: [PATCH 1/2] fix(aostdio): return fread bytes read from weavedrive_read --- dev-cli/container/src/aolibc/aostdio.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dev-cli/container/src/aolibc/aostdio.c b/dev-cli/container/src/aolibc/aostdio.c index 87f0a8be0..3398579ea 100644 --- a/dev-cli/container/src/aolibc/aostdio.c +++ b/dev-cli/container/src/aolibc/aostdio.c @@ -48,9 +48,11 @@ FILE* fopen(const char* filename, const char* mode) { } size_t fread(void* ptr, size_t size, size_t nmemb, FILE* stream) { + AO_LOG( "AO: fread called\n"); int fd = fileno(stream); - weavedrive_read(fd, ptr, size * nmemb); - return nmemb; + int bytes_read = weavedrive_read(fd, ptr, size * nmemb); + AO_LOG( "AO: weavedrive_read returned %d bytes\n", bytes_read); + return bytes_read; } int fclose(FILE* stream) { From c8a55b58685f6774207dc529307f3e0587d48450 Mon Sep 17 00:00:00 2001 From: Elliot Sayes Date: Thu, 12 Dec 2024 17:21:21 +0800 Subject: [PATCH 2/2] support for `size` > 1 --- dev-cli/container/src/aolibc/aostdio.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dev-cli/container/src/aolibc/aostdio.c b/dev-cli/container/src/aolibc/aostdio.c index 3398579ea..83e0d21f1 100644 --- a/dev-cli/container/src/aolibc/aostdio.c +++ b/dev-cli/container/src/aolibc/aostdio.c @@ -52,7 +52,11 @@ size_t fread(void* ptr, size_t size, size_t nmemb, FILE* stream) { int fd = fileno(stream); int bytes_read = weavedrive_read(fd, ptr, size * nmemb); AO_LOG( "AO: weavedrive_read returned %d bytes\n", bytes_read); - return bytes_read; + if ((bytes_read % size) != 0) { + // TODO: Handle this case? + AO_LOG( "AO: fread: bytes_read is not a multiple of size\n"); + } + return bytes_read / size; } int fclose(FILE* stream) {