gh-124621: Emscripten: Fix regression in use-after-close error handling (#136837)

This commit is contained in:
Hood Chatham 2025-07-19 21:43:50 +02:00 committed by GitHub
parent 69ea1b3a8f
commit 800d37feca
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -148,10 +148,17 @@ EM_JS_MACROS(__externref_t, __maybe_fd_read_async, (
size_t iovcnt,
__wasi_size_t *nread
), {
var stream = SYSCALLS.getStreamFromFD(fd);
if (!WebAssembly.promising) {
return null;
}
var stream;
try {
stream = SYSCALLS.getStreamFromFD(fd);
} catch (e) {
// If the fd was already closed or never existed, getStreamFromFD()
// raises. We'll let fd_read_orig() handle setting errno.
return null;
}
if (!stream.stream_ops.readAsync) {
// Not an async device. Fall back to __wasi_fd_read_orig().
return null;