[clang] 560cfd5 - c-index-test: fix buffer overflow (#129922)

via cfe-commits cfe-commits at lists.llvm.org
Wed Mar 5 17:52:15 PST 2025


Author: Jinsong Ji
Date: 2025-03-05T20:52:11-05:00
New Revision: 560cfd509916cd75bcd79143a91def5f3d8b9ba1

URL: https://github.com/llvm/llvm-project/commit/560cfd509916cd75bcd79143a91def5f3d8b9ba1
DIFF: https://github.com/llvm/llvm-project/commit/560cfd509916cd75bcd79143a91def5f3d8b9ba1.diff

LOG: c-index-test: fix buffer overflow (#129922)

We should not try to overwrite the pointer of struct, also need to add 1
for end of line.

Added: 
    

Modified: 
    clang/tools/c-index-test/c-index-test.c

Removed: 
    


################################################################################
diff  --git a/clang/tools/c-index-test/c-index-test.c b/clang/tools/c-index-test/c-index-test.c
index 942500f2975e4..50f32c0a20e5a 100644
--- a/clang/tools/c-index-test/c-index-test.c
+++ b/clang/tools/c-index-test/c-index-test.c
@@ -3555,11 +3555,12 @@ static CXIdxClientContainer makeClientContainer(CXClientData *client_data,
   clang_indexLoc_getFileLocation(loc, &file, 0, &line, &column, 0);
 
   len = sizeof(IndexDataStringList) + strlen(name) + digitCount(line) +
-        digitCount(column) + 2;
+        digitCount(column) + 3;
   node = (IndexDataStringList *)malloc(len);
   assert(node);
   newStr = node->data;
-  snprintf(newStr, len, "%s:%d:%d", name, line, column);
+  snprintf(newStr, len - sizeof(IndexDataStringList), "%s:%d:%d", name, line,
+           column);
 
   /* Remember string so it can be freed later. */
   index_data = (IndexData *)client_data;


        


More information about the cfe-commits mailing list