[clang-tools-extra] 30360d8 - [clang-doc] Add check for pointer validity
Paul Kirth via cfe-commits
cfe-commits at lists.llvm.org
Fri Jul 22 10:36:38 PDT 2022
Author: Paul Kirth
Date: 2022-07-22T17:36:30Z
New Revision: 30360d88d42214e75215145c4e73a74aaf93ddfd
URL: https://github.com/llvm/llvm-project/commit/30360d88d42214e75215145c4e73a74aaf93ddfd
DIFF: https://github.com/llvm/llvm-project/commit/30360d88d42214e75215145c4e73a74aaf93ddfd.diff
LOG: [clang-doc] Add check for pointer validity
clang-doc would SEGV when running over the Fuchsia code base.
This patch adds a check to avoid dereferencing potentially null pointers
in the Values vector. These pointers were either never valid or had been
invalidated when the underlying pointer in std::unique_ptr was moved from,
hence making it nullptr within the vector.
Reviewed By: phosek
Differential Revision: https://reviews.llvm.org/D130279
Added:
Modified:
clang-tools-extra/clang-doc/Representation.cpp
Removed:
################################################################################
diff --git a/clang-tools-extra/clang-doc/Representation.cpp b/clang-tools-extra/clang-doc/Representation.cpp
index 8c619d2a09632..0a78d8c190db9 100644
--- a/clang-tools-extra/clang-doc/Representation.cpp
+++ b/clang-tools-extra/clang-doc/Representation.cpp
@@ -33,7 +33,7 @@ const SymbolID EmptySID = SymbolID();
template <typename T>
llvm::Expected<std::unique_ptr<Info>>
reduce(std::vector<std::unique_ptr<Info>> &Values) {
- if (Values.empty())
+ if (Values.empty() || !Values[0])
return llvm::createStringError(llvm::inconvertibleErrorCode(),
"no value to reduce");
std::unique_ptr<Info> Merged = std::make_unique<T>(Values[0]->USR);
@@ -95,7 +95,7 @@ void reduceChildren(std::vector<EnumInfo> &Children,
// Dispatch function.
llvm::Expected<std::unique_ptr<Info>>
mergeInfos(std::vector<std::unique_ptr<Info>> &Values) {
- if (Values.empty())
+ if (Values.empty() || !Values[0])
return llvm::createStringError(llvm::inconvertibleErrorCode(),
"no info values to merge");
More information about the cfe-commits
mailing list