[llvm] 033ca45 - [llvm-readobj] Fix UB in pointer arithmetics after D105522
    Vitaly Buka via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Tue Aug  3 10:38:36 PDT 2021
    
    
  
Author: Vitaly Buka
Date: 2021-08-03T10:38:29-07:00
New Revision: 033ca45d4f097f92dd6254f29881d906f45e0c26
URL: https://github.com/llvm/llvm-project/commit/033ca45d4f097f92dd6254f29881d906f45e0c26
DIFF: https://github.com/llvm/llvm-project/commit/033ca45d4f097f92dd6254f29881d906f45e0c26.diff
LOG: [llvm-readobj] Fix UB in pointer arithmetics after D105522
Added: 
    
Modified: 
    llvm/tools/llvm-readobj/ObjDumper.cpp
Removed: 
    
################################################################################
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
        
    
    
More information about the llvm-commits
mailing list