nodejs / uvwasi

WASI syscall API built atop libuv
MIT License
226 stars 50 forks source link

Fix bufused when there are more entries to be read #176

Closed danbev closed 2 years ago

danbev commented 2 years ago

This commit updates the bufused value to be that of the buffer length (buf_len) when there are more entries to be read.

Currently what is happening is that if another directory entry cannot be written to the buffer then the current value of bufused is being "returned", which indicates that all directory entries have been written to the buffer which is not the case.

Fixes: https://github.com/nodejs/uvwasi/issues/174


Using the provided reproducer in #174 running it produces:

$ ~/work/nodejs/node/node wasm-run.js tmp/ls.wasm tmp/testfolder/ | wc -l
301

This does not match the expected count of 300, but if we remove the pipe and the word count command and look at the output of the command we can see that there is an extra line in the output which will be included in the count.

0143
0248
0089
errno: 0
danbev commented 2 years ago

Landed in 92caba8.