From 033ca45d4f097f92dd6254f29881d906f45e0c26 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Tue, 3 Aug 2021 10:29:30 -0700 Subject: [PATCH] [llvm-readobj] Fix UB in pointer arithmetics after D105522 --- llvm/tools/llvm-readobj/ObjDumper.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/llvm/tools/llvm-readobj/ObjDumper.cpp b/llvm/tools/llvm-readobj/ObjDumper.cpp index 28404957c3c1..d7120807dd96 100644 --- a/llvm/tools/llvm-readobj/ObjDumper.cpp +++ b/llvm/tools/llvm-readobj/ObjDumper.cpp @@ -54,6 +54,8 @@ static void printAsPrintable(raw_ostream &W, const uint8_t *Start, size_t Len) { void ObjDumper::printAsStringList(StringRef StringContent, size_t StringDataOffset) { + if (StringContent.size() < StringDataOffset) + return; const uint8_t *StrContent = StringContent.bytes_begin(); // Some formats contain additional metadata at the start which should not be // interpreted as strings. Skip these bytes, but account for them in the