[sanitizer] zx_vmo_write on Fuchsia takes only 4 arguments now
authorPetr Hosek <phosek@chromium.org>
Thu, 22 Mar 2018 23:58:37 +0000 (23:58 +0000)
committerPetr Hosek <phosek@chromium.org>
Thu, 22 Mar 2018 23:58:37 +0000 (23:58 +0000)
The system call now fails when it cannot write the requested size.
Update the sanitizer runtime Fuchsia implementation accordingly.

Differential Revision: https://reviews.llvm.org/D44770

llvm-svn: 328273

compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cc

index 924ba72..b153e49 100644 (file)
@@ -418,16 +418,7 @@ bool IsAccessibleMemoryRange(uptr beg, uptr size) {
   zx_handle_t vmo;
   zx_status_t status = _zx_vmo_create(size, 0, &vmo);
   if (status == ZX_OK) {
-    while (size > 0) {
-      size_t wrote;
-      status = _zx_vmo_write(vmo, reinterpret_cast<const void *>(beg), 0, size,
-                             &wrote);
-      if (status != ZX_OK) break;
-      CHECK_GT(wrote, 0);
-      CHECK_LE(wrote, size);
-      beg += wrote;
-      size -= wrote;
-    }
+    status = _zx_vmo_write(vmo, reinterpret_cast<const void *>(beg), 0, size);
     _zx_handle_close(vmo);
   }
   return status == ZX_OK;