Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(106)

Unified Diff: native_client_sdk/src/libraries/nacl_io/kernel_wrap_glibc.cc

Issue 832413004: [NaCl SDK] nacl_io: Change default root filesystem type from passthroughfs to memfs Base URL: https://chromium.googlesource.com/chromium/src.git@cleanup_path
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: native_client_sdk/src/libraries/nacl_io/kernel_wrap_glibc.cc
diff --git a/native_client_sdk/src/libraries/nacl_io/kernel_wrap_glibc.cc b/native_client_sdk/src/libraries/nacl_io/kernel_wrap_glibc.cc
index 8e45a35ce29e83c8eea62fc91b3c81e274d7bdf3..2a305827b6c0d4bd54d61dbafec2db9e8810539c 100644
--- a/native_client_sdk/src/libraries/nacl_io/kernel_wrap_glibc.cc
+++ b/native_client_sdk/src/libraries/nacl_io/kernel_wrap_glibc.cc
@@ -532,15 +532,16 @@ int _real_fstat(int fd, struct stat* buf) {
return 0;
}
-int _real_getdents(int fd, void* buf, size_t count, size_t* nread) {
+int _real_getdents(int fd, struct dirent* buf, size_t count, size_t* nread) {
// "buf" contains dirent(s); "nacl_buf" contains nacl_abi_dirent(s).
// See WRAP(getdents) above.
+
char* nacl_buf = (char*)alloca(count);
size_t offset = 0;
size_t nacl_offset = 0;
size_t nacl_nread;
CHECK_REAL(getdents);
- int err = REAL(getdents)(fd, (dirent*)nacl_buf, count, &nacl_nread);
+ int err = REAL(getdents)(fd, (struct dirent*)nacl_buf, count, &nacl_nread);
if (err)
return err;
@@ -550,12 +551,12 @@ int _real_getdents(int fd, void* buf, size_t count, size_t* nread) {
d->d_ino = nacl_d->nacl_abi_d_ino;
d->d_off = nacl_d->nacl_abi_d_off;
d->d_reclen = nacl_d->nacl_abi_d_reclen + d_name_shift;
- size_t d_name_len =
+ size_t name_len =
nacl_d->nacl_abi_d_reclen - offsetof(nacl_abi_dirent, nacl_abi_d_name);
- memcpy(d->d_name, nacl_d->nacl_abi_d_name, d_name_len);
+ memcpy(d->d_name, nacl_d->nacl_abi_d_name, name_len);
offset += d->d_reclen;
- offset += nacl_d->nacl_abi_d_reclen;
+ nacl_offset += nacl_d->nacl_abi_d_reclen;
binji 2015/09/08 19:18:57 ooh, nasty.
}
*nread = offset;

Powered by Google App Engine
This is Rietveld 408576698