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; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits