Skip to content

Commit

Permalink
wasm: Fix build with wasmtime 27.0.0
Browse files Browse the repository at this point in the history
Wasmtime 27.0.0 adjusted the C API to start flowing through the
directory and file permission bits of the underlying rust
wasi_config_preopen_dir() implementation.

The directory permissions control whether a directory is read-only or
whether you can create/modify files within.

You always need at least WASMTIME_WASI_DIR_PERMS_READ.

The file permissions control whether you can read or read/write files.

WASMTIME_WASI_FILE_PERMS_WRITE seems to imply
WASMTIME_WASI_FILE_PERMS_READ (but we add both just to make it clear
what we want)

[ Permissions tweak and commit message - Andrew ]
Signed-off-by: Andrew Clayton <[email protected]>
  • Loading branch information
osokin authored and ac000 committed Nov 26, 2024
1 parent 4f04132 commit 6cc4d70
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/wasm/nxt_rt_wasmtime.c
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,13 @@ nxt_wasmtime_wasi_init(const nxt_wasm_ctx_t *ctx)
wasi_config_inherit_stderr(wasi_config);

for (dir = ctx->dirs; dir != NULL && *dir != NULL; dir++) {
#if defined(WASMTIME_VERSION_MAJOR) && (WASMTIME_VERSION_MAJOR >= 27)
wasi_config_preopen_dir(wasi_config, *dir, *dir,
WASMTIME_WASI_DIR_PERMS_READ|WASMTIME_WASI_DIR_PERMS_WRITE,
WASMTIME_WASI_FILE_PERMS_READ|WASMTIME_WASI_FILE_PERMS_WRITE);
#else
wasi_config_preopen_dir(wasi_config, *dir, *dir);
#endif
}

error = wasmtime_context_set_wasi(rt_ctx->ctx, wasi_config);
Expand Down

0 comments on commit 6cc4d70

Please sign in to comment.