summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabio D'Urso <fdurso@google.com>2024-04-25 23:23:42 +0200
committerCopybara-Service <copybara-worker@google.com>2024-04-25 14:30:39 -0700
commit654039be90606a740e7aa341ec8c91cdbe57ed6b (patch)
treec2a6a4bfd467be85fee40ee41be6b276998a85a9
parente7c3a3d5418206d54b278c3f76613e00910f5350 (diff)
downloadscudo-654039be90606a740e7aa341ec8c91cdbe57ed6b.tar.gz
[scudo] Improve readability of MemMapFuchsia's error handling (#90102)
By expressing the conditions covered by MAP_ALLOWNOMEM in a more direct way. GitOrigin-RevId: b7e9dae6f6a4610bee729179167a0ac4a3dd7b7b Change-Id: I09a1adb12af85b08c6b5fb34051ed7d162998f00
-rw-r--r--standalone/mem_map_fuchsia.cpp34
1 files changed, 17 insertions, 17 deletions
diff --git a/standalone/mem_map_fuchsia.cpp b/standalone/mem_map_fuchsia.cpp
index 5f3c8b81c07..fc793abf44c 100644
--- a/standalone/mem_map_fuchsia.cpp
+++ b/standalone/mem_map_fuchsia.cpp
@@ -108,9 +108,9 @@ bool MemMapFuchsia::mapImpl(UNUSED uptr Addr, uptr Size, const char *Name,
// Create the VMO.
zx_status_t Status = _zx_vmo_create(Size, 0, &Vmo);
if (UNLIKELY(Status != ZX_OK)) {
- if (!IsNoMemError(Status) || !AllowNoMem)
- dieOnError(Status, "zx_vmo_create", Size);
- return false;
+ if (AllowNoMem && IsNoMemError(Status))
+ return false;
+ dieOnError(Status, "zx_vmo_create", Size);
}
if (Name != nullptr)
@@ -123,15 +123,15 @@ bool MemMapFuchsia::mapImpl(UNUSED uptr Addr, uptr Size, const char *Name,
Status =
_zx_vmar_map(_zx_vmar_root_self(), MapFlags, 0, Vmo, 0, Size, &MapAddr);
if (UNLIKELY(Status != ZX_OK)) {
- if (!IsNoMemError(Status) || !AllowNoMem)
- dieOnError(Status, "zx_vmar_map", Size);
-
- Status = _zx_handle_close(Vmo);
- CHECK_EQ(Status, ZX_OK);
+ if (AllowNoMem && IsNoMemError(Status)) {
+ Status = _zx_handle_close(Vmo);
+ CHECK_EQ(Status, ZX_OK);
- MapAddr = 0;
- Vmo = ZX_HANDLE_INVALID;
- return false;
+ MapAddr = 0;
+ Vmo = ZX_HANDLE_INVALID;
+ return false;
+ }
+ dieOnError(Status, "zx_vmar_map", Size);
}
if (PreCommit) {
@@ -194,9 +194,9 @@ bool MemMapFuchsia::remapImpl(uptr Addr, uptr Size, const char *Name,
_zx_vmar_map(_zx_vmar_root_self(), MapFlags, Addr - getRootVmarBase(),
Vmo, Addr - MapAddr, Size, &MappedAddr);
if (UNLIKELY(Status != ZX_OK)) {
- if (!IsNoMemError(Status) || !AllowNoMem)
- dieOnError(Status, "zx_vmar_map", Size);
- return false;
+ if (AllowNoMem && IsNoMemError(Status))
+ return false;
+ dieOnError(Status, "zx_vmar_map", Size);
}
DCHECK_EQ(Addr, MappedAddr);
@@ -234,9 +234,9 @@ bool ReservedMemoryFuchsia::createImpl(UNUSED uptr Addr, uptr Size,
zx_status_t Status = _zx_vmar_map(_zx_vmar_root_self(), ZX_VM_ALLOW_FAULTS, 0,
getPlaceholderVmo(), 0, Size, &Base);
if (UNLIKELY(Status != ZX_OK)) {
- if (!IsNoMemError(Status) || !AllowNoMem)
- dieOnError(Status, "zx_vmar_map", Size);
- return false;
+ if (AllowNoMem && IsNoMemError(Status))
+ return false;
+ dieOnError(Status, "zx_vmar_map", Size);
}
Capacity = Size;