-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Closed
Description
The pwrite64 syscall references the nbyte variable while the count variable is probably assumed.
How to reproduce
Compile this code
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
int main()
{
char str[] = "test abc\n";
int fd = open("test.txt", O_WRONLY | O_CREAT);
fprintf(stderr, "fd = %d\n", fd);
int ret = pwrite(fd, str, sizeof(str), 4);
fprintf(stderr, "pwrite: %d\n", ret);
return 0;
}When run using node test.js it outputs:
fd = 3
[ReferenceError: nbyte is not defined]
[ReferenceError: nbyte is not defined]
/home/old_home/trosinenko/tmp/bugs/pwrite/test.js:110
throw ex;
^
abort({}) at Error
at jsStackTrace (/home/old_home/trosinenko/tmp/bugs/pwrite/test.js:1092:13)
at stackTrace (/home/old_home/trosinenko/tmp/bugs/pwrite/test.js:1109:12)
at abort (/home/old_home/trosinenko/tmp/bugs/pwrite/test.js:12237:44)
at ___syscall181 (/home/old_home/trosinenko/tmp/bugs/pwrite/test.js:4710:69)
at _pwrite (/home/old_home/trosinenko/tmp/bugs/pwrite/test.js:8454:8)
at _main (/home/old_home/trosinenko/tmp/bugs/pwrite/test.js:5017:8)
at Object.asm._main (/home/old_home/trosinenko/tmp/bugs/pwrite/test.js:11961:19)
at Object.callMain (/home/old_home/trosinenko/tmp/bugs/pwrite/test.js:12112:30)
at doRun (/home/old_home/trosinenko/tmp/bugs/pwrite/test.js:12172:60)
at run (/home/old_home/trosinenko/tmp/bugs/pwrite/test.js:12186:5)
emcc -v output:
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 1.37.1
clang version 3.9.0 (https://github.com/kripken/emscripten-fastcomp-clang/ 7372fbdc769db28fd534454268f4b008e629464f) (https://github.com/kripken/emscripten-fastcomp/ 942a10fbb02f54866c3fc11d6fad119cc38f1e8f) (emscripten 1.37.1 : 1.37.1)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/trosinenko/soft/emsdk_portable/clang/fastcomp/build_incoming_64/bin
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/5
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/5.4.0
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/6
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/6.0.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.3
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.4.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.0.0
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.4.0
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Candidate multilib: x32;@mx32
Selected multilib: .;@m64
INFO:root:(Emscripten: Running sanity checks)
Metadata
Metadata
Assignees
Labels
No labels