diff options
author | Pirama Arumuga Nainar <pirama@google.com> | 2020-12-14 13:37:59 -0800 |
---|---|---|
committer | Pirama Arumuga Nainar <pirama@google.com> | 2020-12-14 13:39:27 -0800 |
commit | dae8d0c3d327441705601c87745ef13ea6dc2f54 (patch) | |
tree | 317774f2f2bc85b70dff91441a9f55ff831c7030 /toolchain-extras/profile-clang-openat.cpp | |
parent | 9ae17c2c08c0cdd0d4f946e566b7d96ee60cb9ab (diff) | |
download | extras-dae8d0c3d327441705601c87745ef13ea6dc2f54.tar.gz |
[coverage] Check return value of `open`
We were attempting to call `fchmod` on a file descriptor without
checking its validity.
Test: N/A
Change-Id: Ice54caa6089f7dc36068deef731305a630880248
Diffstat (limited to 'toolchain-extras/profile-clang-openat.cpp')
-rw-r--r-- | toolchain-extras/profile-clang-openat.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/toolchain-extras/profile-clang-openat.cpp b/toolchain-extras/profile-clang-openat.cpp index f2f43d14..45c1acc5 100644 --- a/toolchain-extras/profile-clang-openat.cpp +++ b/toolchain-extras/profile-clang-openat.cpp @@ -49,7 +49,7 @@ __attribute__((weak)) int __wrap_open(const char* pathname, int flags, ...) { va_end(args); int ret = __real_open(pathname, flags, mode); - if (is_coverage_trace(pathname)) fchmod(ret, mode); + if (ret != -1 && is_coverage_trace(pathname)) fchmod(ret, mode); return ret; } } |