0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-03-03 09:31:22 -05:00

fix(std/wasi): use lookupflags for path_filestat_get (#6530)

This commit is contained in:
Casper Beyer 2020-06-28 03:55:05 +08:00 committed by GitHub
parent 40dcfc8996
commit 5f3d730df0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 1 deletions

View file

@ -853,7 +853,10 @@ export default class Module {
const view = new DataView(this.memory.buffer);
try {
const info = Deno.statSync(path);
const info =
(flags & LOOKUPFLAGS_SYMLINK_FOLLOW) != 0
? Deno.statSync(path)
: Deno.lstatSync(path);
view.setBigUint64(buf_out, BigInt(info.dev ? info.dev : 0), true);
buf_out += 8;

View file

@ -0,0 +1,23 @@
// { "preopens": { "/fixture": "fixture" } }
fn main() {
let metadata = std::fs::symlink_metadata("/fixture/directory").unwrap();
assert!(metadata.file_type().is_dir());
let metadata =
std::fs::symlink_metadata("/fixture/symlink_to_directory").unwrap();
assert!(metadata.file_type().is_symlink());
let metadata = std::fs::symlink_metadata("/fixture/file").unwrap();
assert!(metadata.file_type().is_file());
let metadata = std::fs::symlink_metadata("/fixture/symlink_to_file").unwrap();
assert!(metadata.file_type().is_symlink());
let metadata = std::fs::symlink_metadata("/fixture/directory/file").unwrap();
assert!(metadata.file_type().is_file());
let metadata =
std::fs::symlink_metadata("/fixture/directory/symlink_to_file").unwrap();
assert!(metadata.file_type().is_symlink());
}