From ac4ae9d7ab0fd38b68bb17147f767f16fba1b51c Mon Sep 17 00:00:00 2001 From: mohanson Date: Sun, 13 Jul 2025 16:29:24 +0800 Subject: [PATCH 1/4] 2025-07-13 16:29:24 --- pywasm/wasi.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pywasm/wasi.py b/pywasm/wasi.py index b8d6053..461a0ba 100644 --- a/pywasm/wasi.py +++ b/pywasm/wasi.py @@ -1237,7 +1237,8 @@ def path_readlink(self, m: pywasm.core.Machine, args: typing.List[int]) -> typin data = os.readlink(name, dir_fd=file.host_fd) except FileNotFoundError: return [self.ERRNO_NOENT] - except OSError: + except OSError as e: + print(e) return [self.ERRNO_INVAL] size = min(len(data), args[4]) mems.put(args[3], bytearray(data[:size].encode())) From d0465958ea86e81d36e8a265f747ea2f212f3703 Mon Sep 17 00:00:00 2001 From: mohanson Date: Sun, 13 Jul 2025 16:30:41 +0800 Subject: [PATCH 2/4] 2025-07-13 16:30:41 --- pywasm/wasi.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/pywasm/wasi.py b/pywasm/wasi.py index 461a0ba..402988a 100644 --- a/pywasm/wasi.py +++ b/pywasm/wasi.py @@ -1237,9 +1237,6 @@ def path_readlink(self, m: pywasm.core.Machine, args: typing.List[int]) -> typin data = os.readlink(name, dir_fd=file.host_fd) except FileNotFoundError: return [self.ERRNO_NOENT] - except OSError as e: - print(e) - return [self.ERRNO_INVAL] size = min(len(data), args[4]) mems.put(args[3], bytearray(data[:size].encode())) mems.put_u32(args[5], size) From a6729b62ffb80af6a0b6e6e7a683ba6f4215eb6d Mon Sep 17 00:00:00 2001 From: mohanson Date: Sun, 13 Jul 2025 16:34:29 +0800 Subject: [PATCH 3/4] 2025-07-13 16:34:29 --- pywasm/wasi.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pywasm/wasi.py b/pywasm/wasi.py index 402988a..6f9d6eb 100644 --- a/pywasm/wasi.py +++ b/pywasm/wasi.py @@ -1177,8 +1177,12 @@ def path_open(self, m: pywasm.core.Machine, args: typing.List[int]) -> typing.Li return [self.ERRNO_ISDIR] except NotADirectoryError: return [self.ERRNO_NOTDIR] - except OSError: - return [self.ERRNO_LOOP] + except OSError as e: + if platform.system().lower() == 'darwin' and e.errno == 62: + return [self.ERRNO_NOTEMPTY] + if platform.system().lower() == 'linux' and e.errno == 40: + return [self.ERRNO_LOOP] + raise e rights_base = args[5] rights_root = args[6] # Drectory does not have the seek right. From 4de7a822732c0edbbf29452de6a98151497fe8c0 Mon Sep 17 00:00:00 2001 From: mohanson Date: Sun, 13 Jul 2025 16:37:29 +0800 Subject: [PATCH 4/4] 2025-07-13 16:37:29 --- pywasm/wasi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pywasm/wasi.py b/pywasm/wasi.py index 6f9d6eb..41edd25 100644 --- a/pywasm/wasi.py +++ b/pywasm/wasi.py @@ -1179,7 +1179,7 @@ def path_open(self, m: pywasm.core.Machine, args: typing.List[int]) -> typing.Li return [self.ERRNO_NOTDIR] except OSError as e: if platform.system().lower() == 'darwin' and e.errno == 62: - return [self.ERRNO_NOTEMPTY] + return [self.ERRNO_LOOP] if platform.system().lower() == 'linux' and e.errno == 40: return [self.ERRNO_LOOP] raise e