[clang] cf236a0 - [NFC][CLANG] Fix nullptr dereference issue in DeduceTemplateArgumentsByTypeMatch()
via cfe-commits
cfe-commits at lists.llvm.org
Tue May 30 19:03:41 PDT 2023
Author: Manna, Soumi
Date: 2023-05-30T19:02:40-07:00
New Revision: cf236a037fd846d12131809ed07766fceec65fdc
URL: https://github.com/llvm/llvm-project/commit/cf236a037fd846d12131809ed07766fceec65fdc
DIFF: https://github.com/llvm/llvm-project/commit/cf236a037fd846d12131809ed07766fceec65fdc.diff
LOG: [NFC][CLANG] Fix nullptr dereference issue in DeduceTemplateArgumentsByTypeMatch()
DeduceTemplateArgumentsByTypeMatch() returns null value which is dereferenced without checking since getAsIncompleteArrayType() returns nullptr and we are dereferencing null pointer value for S.Context->getAsIncompleteArrayType(P) when calling getElementType().
This patch adds an assert.
Reviewed By: erichkeane
Differential Revision: https://reviews.llvm.org/D151529
Added:
Modified:
clang/lib/Sema/SemaTemplateDeduction.cpp
Removed:
################################################################################
diff --git a/clang/lib/Sema/SemaTemplateDeduction.cpp b/clang/lib/Sema/SemaTemplateDeduction.cpp
index db72b8b3089e..27a8a5990b28 100644
--- a/clang/lib/Sema/SemaTemplateDeduction.cpp
+++ b/clang/lib/Sema/SemaTemplateDeduction.cpp
@@ -1703,10 +1703,12 @@ static Sema::TemplateDeductionResult DeduceTemplateArgumentsByTypeMatch(
if (!IAA)
return Sema::TDK_NonDeducedMismatch;
+ const auto *IAP = S.Context.getAsIncompleteArrayType(P);
+ assert(IAP && "Template parameter not of incomplete array type");
+
return DeduceTemplateArgumentsByTypeMatch(
- S, TemplateParams,
- S.Context.getAsIncompleteArrayType(P)->getElementType(),
- IAA->getElementType(), Info, Deduced, TDF & TDF_IgnoreQualifiers);
+ S, TemplateParams, IAP->getElementType(), IAA->getElementType(), Info,
+ Deduced, TDF & TDF_IgnoreQualifiers);
}
// T [integer-constant]
More information about the cfe-commits
mailing list