diff --git a/filesystem.c b/filesystem.c index 29db744..a76e4ca 100644 --- a/filesystem.c +++ b/filesystem.c @@ -406,8 +406,12 @@ int env____syscall5(int which, int *varargs) { unsigned char *name = (unsigned char*)varargs[0]; int flags = varargs[1]; int mode = varargs[2]; + // No empty names allowed if (!name || !name[0]) return -1; + + for (int i = 0; name[i]; i++) if (name[i] == '/') name[i] = '_'; + int index = 0; if (!s) return -1; debugString((char*)name); diff --git a/filesystem.wasm b/filesystem.wasm index 0ac6eaa..7091db7 100644 Binary files a/filesystem.wasm and b/filesystem.wasm differ diff --git a/fs-asmjs-script.sh b/fs-asmjs-script.sh index 86a42e5..62e9ec6 100644 --- a/fs-asmjs-script.sh +++ b/fs-asmjs-script.sh @@ -11,7 +11,7 @@ emcc -o filesystem.wasm -s EXPORTED_FUNCTIONS="['_env____syscall5', '_env____sys '_env__pthread_mutexattr_destroy', '_env__pthread_condattr_init', \ '_env__pthread_getspecific', '_env__pthread_setspecific', '_env__pthread_condattr_create', '_env__pthread_condattr_setclock', '_env__pthread_condattr_destroy', '_env__pthread_key_create', \ '_env__pthread_mutex_unlock', '_env__pthread_cond_broadcast', '_env__pthread_rwlock_rdlock', '_env__emscripten_memcpy_big', \ -'_env__internalSync', '_env__internalSync2']" -s BINARYEN=1 -s BINARYEN_ROOT="'/home/sami/emsdk/clang/e1.37.36_64bit/binaryen/'" -s SIDE_MODULE=2 filesystem.o +'_env__internalSync', '_env__internalSync2']" -s BINARYEN=1 -s SIDE_MODULE=2 filesystem.o