aboutsummaryrefslogtreecommitdiff
path: root/absl/strings
diff options
context:
space:
mode:
authorFergus Henderson <fergus@google.com>2024-04-25 11:18:57 -0700
committerCopybara-Service <copybara-worker@google.com>2024-04-25 11:20:03 -0700
commitd3b1c7bbd2ece5755aaa58e9d8366a419b036fb5 (patch)
treecd7d93e66a81e4576dbb9ff2054d53894c2770e3 /absl/strings
parent8a3ae1b6f5fb8a034408cc665f4ce1bf7a5e190d (diff)
downloadabseil-d3b1c7bbd2ece5755aaa58e9d8366a419b036fb5.tar.gz
abseil-d3b1c7bbd2ece5755aaa58e9d8366a419b036fb5.tar.bz2
abseil-d3b1c7bbd2ece5755aaa58e9d8366a419b036fb5.zip
Guard against null pointer dereference in DumpNode.
PiperOrigin-RevId: 628134930 Change-Id: I6b9763f2a87a9259963f00815c6953927f8add73
Diffstat (limited to 'absl/strings')
-rw-r--r--absl/strings/cord.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/absl/strings/cord.cc b/absl/strings/cord.cc
index 025904c1..f0f4f31a 100644
--- a/absl/strings/cord.cc
+++ b/absl/strings/cord.cc
@@ -75,7 +75,7 @@ using ::absl::cord_internal::kMinFlatLength;
using ::absl::cord_internal::kInlinedVectorSize;
using ::absl::cord_internal::kMaxBytesToCopy;
-static void DumpNode(absl::Nonnull<CordRep*> rep, bool include_data,
+static void DumpNode(absl::Nonnull<CordRep*> nonnull_rep, bool include_data,
absl::Nonnull<std::ostream*> os, int indent = 0);
static bool VerifyNode(absl::Nonnull<CordRep*> root,
absl::Nonnull<CordRep*> start_node);
@@ -1457,12 +1457,13 @@ absl::string_view Cord::FlattenSlowPath() {
}
}
-static void DumpNode(absl::Nonnull<CordRep*> rep, bool include_data,
+static void DumpNode(absl::Nonnull<CordRep*> nonnull_rep, bool include_data,
absl::Nonnull<std::ostream*> os, int indent) {
+ CordRep* rep = nonnull_rep;
const int kIndentStep = 1;
for (;;) {
- *os << std::setw(3) << rep->refcount.Get();
- *os << " " << std::setw(7) << rep->length;
+ *os << std::setw(3) << (rep == nullptr ? 0 : rep->refcount.Get());
+ *os << " " << std::setw(7) << (rep == nullptr ? 0 : rep->length);
*os << " [";
if (include_data) *os << static_cast<void*>(rep);
*os << "]";