Modify fd_prestat to hold C-str together with its length

This commit is contained in:
Jakub Konka
2019-05-01 17:05:59 +02:00
committed by Dan Gohman
parent f7245f40a1
commit d6b2faeeb4
3 changed files with 14 additions and 11 deletions

View File

@@ -98,7 +98,7 @@ fn fd_prestats_get_entry(
}
let prestat = unsafe { &*pt.prestats.add(fd as usize) };
if prestat.dir == ::std::ptr::null() {
if prestat.dir_name == ::std::ptr::null() {
return None;
}
@@ -133,10 +133,9 @@ pub fn wasmtime_ssp_fd_prestat_get(
rwlock_rdlock!(prestats);
let ret_code = if let Some(prestat) = fd_prestats_get_entry(prestats, fd) {
(*buf).pr_type = host::__WASI_PREOPENTYPE_DIR;
buf.pr_type = host::__WASI_PREOPENTYPE_DIR;
unsafe {
let dir_name = ::std::ffi::CStr::from_ptr((*prestat).dir).to_str().unwrap();
(*buf).u.dir.pr_name_len = dir_name.len();
buf.u.dir.pr_name_len = prestat.dir_name_len;
}
host::__WASI_ESUCCESS
} else {