Fznamznon created this revision. Herald added subscribers: manas, ASDenysPetrov, dkrupp, donat.nagy, Szelethus, a.sidorin, baloghadamsoftware. Herald added a project: All. Fznamznon requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits.
HeaderIncludesCallback and HeaderIncludesJSONCallback classes may own resources and free them in the destructor. However they don't have copy user-written constructors/assignment operators, so an attempt to copy a HeaderIncludesCallback object will use compiler-generated copy constructor which will only do dummy copy and afterwards there will be use-after-free issues. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D155842 Files: clang/lib/Frontend/HeaderIncludeGen.cpp Index: clang/lib/Frontend/HeaderIncludeGen.cpp =================================================================== --- clang/lib/Frontend/HeaderIncludeGen.cpp +++ clang/lib/Frontend/HeaderIncludeGen.cpp @@ -43,6 +43,9 @@ delete OutputFile; } + HeaderIncludesCallback(const HeaderIncludesCallback &) = delete; + HeaderIncludesCallback &operator=(const HeaderIncludesCallback &) = delete; + void FileChanged(SourceLocation Loc, FileChangeReason Reason, SrcMgr::CharacteristicKind FileType, FileID PrevFID) override; @@ -90,6 +93,10 @@ delete OutputFile; } + HeaderIncludesJSONCallback(const HeaderIncludesJSONCallback &) = delete; + HeaderIncludesJSONCallback & + operator=(const HeaderIncludesJSONCallback &) = delete; + void EndOfMainFile() override; void FileChanged(SourceLocation Loc, FileChangeReason Reason,
Index: clang/lib/Frontend/HeaderIncludeGen.cpp =================================================================== --- clang/lib/Frontend/HeaderIncludeGen.cpp +++ clang/lib/Frontend/HeaderIncludeGen.cpp @@ -43,6 +43,9 @@ delete OutputFile; } + HeaderIncludesCallback(const HeaderIncludesCallback &) = delete; + HeaderIncludesCallback &operator=(const HeaderIncludesCallback &) = delete; + void FileChanged(SourceLocation Loc, FileChangeReason Reason, SrcMgr::CharacteristicKind FileType, FileID PrevFID) override; @@ -90,6 +93,10 @@ delete OutputFile; } + HeaderIncludesJSONCallback(const HeaderIncludesJSONCallback &) = delete; + HeaderIncludesJSONCallback & + operator=(const HeaderIncludesJSONCallback &) = delete; + void EndOfMainFile() override; void FileChanged(SourceLocation Loc, FileChangeReason Reason,
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits