[libcxx-commits] [libcxx] [libc++][hardening] Classify assertions related to leaks and syscalls. (PR #77164)
Will Hawkins via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Jan 5 18:34:23 PST 2024
================
@@ -461,7 +461,7 @@ path __current_path(error_code* ec) {
Deleter deleter = &::free;
#else
auto size = ::pathconf(".", _PC_PATH_MAX);
- _LIBCPP_ASSERT_UNCATEGORIZED(size >= 0, "pathconf returned a 0 as max size");
+ _LIBCPP_ASSERT_VALID_EXTERNAL_API_CALL(size >= 0, "pathconf returned a 0 as max size");
----------------
hawkinsw wrote:
Here is something interesting that I found from the `man` page:
```
• If name corresponds to a maximum or minimum limit, and that limit is
indeterminate, -1 is returned and errno is not changed. (To distin‐
guish an indeterminate limit from an error, set errno to zero before
the call, and then check whether errno is nonzero when -1 is re‐
turned.)
```
So, perhaps, there could be a platform out there that has an indeterminate maximum path length that could return `-1` and mean that it was not an error?
https://github.com/llvm/llvm-project/pull/77164
More information about the libcxx-commits
mailing list