Merge pull request #8825 from trofi/search-path-prefix

src/libexpr/search-path.cc: avoid out-of-bounds read on string_view
This commit is contained in:
Eelco Dolstra 2023-08-16 16:44:49 +02:00 committed by GitHub
commit 7f8c99c70c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -10,7 +10,7 @@ std::optional<std::string_view> SearchPath::Prefix::suffixIfPotentialMatch(
/* Non-empty prefix and suffix must be separated by a /, or the /* Non-empty prefix and suffix must be separated by a /, or the
prefix is not a valid path prefix. */ prefix is not a valid path prefix. */
bool needSeparator = n > 0 && (path.size() - n) > 0; bool needSeparator = n > 0 && n < path.size();
if (needSeparator && path[n] != '/') { if (needSeparator && path[n] != '/') {
return std::nullopt; return std::nullopt;