From 5c63e6f9c1b5eb5772c261246ec8ddd1d42ba02a Mon Sep 17 00:00:00 2001 From: anjiaqi Date: Mon, 14 Jul 2025 16:23:11 +0800 Subject: [PATCH] Fix security alert on 0603 include 7 Issue: https://gitee.com/openharmony/arkcompiler_ets_frontend/issues/ICM63B Signed-off-by: anjiaqi --- ets2panda/checker/ets/dynamic.cpp | 1 + ets2panda/checker/ets/typeRelationContext.h | 1 + ets2panda/checker/ets/utilityTypeHandlers.cpp | 1 - ets2panda/checker/types/ets/etsFunctionType.cpp | 4 ++-- ets2panda/checker/types/typeRelation.cpp | 1 + ets2panda/declgen_ets2ts/declgenEts2Ts.cpp | 1 + ets2panda/parser/ETSparser.cpp | 2 +- 7 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ets2panda/checker/ets/dynamic.cpp b/ets2panda/checker/ets/dynamic.cpp index 7b589e781b..93a5d32808 100644 --- a/ets2panda/checker/ets/dynamic.cpp +++ b/ets2panda/checker/ets/dynamic.cpp @@ -705,6 +705,7 @@ void ETSChecker::BuildLambdaObjectClass(ETSObjectType *functionalInterface, ir:: { auto *invokeMethod = functionalInterface->GetOwnProperty( compiler::Signatures::STATIC_INVOKE_METHOD); + ES2PANDA_ASSERT(invokeMethod != nullptr); auto *invokeSignature = invokeMethod->TsType()->AsETSFunctionType()->CallSignatures()[0]; ES2PANDA_ASSERT(invokeSignature != nullptr); std::stringstream ss; diff --git a/ets2panda/checker/ets/typeRelationContext.h b/ets2panda/checker/ets/typeRelationContext.h index b198336e9f..084d01c2a3 100644 --- a/ets2panda/checker/ets/typeRelationContext.h +++ b/ets2panda/checker/ets/typeRelationContext.h @@ -36,6 +36,7 @@ public: ES2PANDA_ASSERT(target != nullptr); ES2PANDA_ASSERT(node != nullptr); + ES2PANDA_ASSERT(source != nullptr); if (target->IsETSArrayType() && node->IsArrayExpression()) { assignable_ = ValidateArrayTypeInitializerByElement(relation, node->AsArrayExpression(), target->AsETSArrayType()); diff --git a/ets2panda/checker/ets/utilityTypeHandlers.cpp b/ets2panda/checker/ets/utilityTypeHandlers.cpp index 90b805ca7b..5ce306641c 100644 --- a/ets2panda/checker/ets/utilityTypeHandlers.cpp +++ b/ets2panda/checker/ets/utilityTypeHandlers.cpp @@ -243,7 +243,6 @@ ir::ClassProperty *ETSChecker::CreateNullishPropertyFromAccessor(ir::MethodDefin ES2PANDA_ASSERT(prop != nullptr); prop->SetParent(newClassDefinition); ident->SetParent(prop); - prop->SetTypeAnnotation(accessor->Function()->IsGetter() ? accessor->Function()->ReturnTypeAnnotation() : accessor->Function()->Params()[0]->AsETSParameterExpression()->TypeAnnotation()); diff --git a/ets2panda/checker/types/ets/etsFunctionType.cpp b/ets2panda/checker/types/ets/etsFunctionType.cpp index 82d5ba909e..533f62eb47 100644 --- a/ets2panda/checker/types/ets/etsFunctionType.cpp +++ b/ets2panda/checker/types/ets/etsFunctionType.cpp @@ -79,6 +79,8 @@ static ETSObjectType *FunctionTypeToFunctionalInterfaceType(ETSChecker *checker, auto nPosParams = arity < sigParamsSize ? arity : sigParamsSize; auto *functionN = checker->GlobalBuiltinFunctionType(nPosParams, true); auto *substitution = checker->NewSubstitution(); + ES2PANDA_ASSERT(functionN != nullptr); + ES2PANDA_ASSERT(substitution != nullptr); for (size_t i = 0; i < nPosParams; i++) { substitution->emplace(functionN->TypeArguments()[i]->AsETSTypeParameter(), checker->MaybeBoxType(signature->Params()[i]->TsType())); @@ -86,8 +88,6 @@ static ETSObjectType *FunctionTypeToFunctionalInterfaceType(ETSChecker *checker, auto *elementType = !signature->RestVar()->TsType()->IsETSTupleType() ? checker->GetElementTypeOfArray(signature->RestVar()->TsType()) : checker->GlobalETSAnyType(); - ES2PANDA_ASSERT(functionN != nullptr); - ES2PANDA_ASSERT(substitution != nullptr); substitution->emplace(functionN->TypeArguments()[0]->AsETSTypeParameter(), checker->MaybeBoxType(elementType)); return functionN->Substitute(checker->Relation(), substitution, true, isExtensionHack); } diff --git a/ets2panda/checker/types/typeRelation.cpp b/ets2panda/checker/types/typeRelation.cpp index 4055cf91d7..f96b0ffa6d 100644 --- a/ets2panda/checker/types/typeRelation.cpp +++ b/ets2panda/checker/types/typeRelation.cpp @@ -162,6 +162,7 @@ bool TypeRelation::IsComparableTo(Type *source, Type *target) // NOTE: vpukhov. reimplement dynamic comparison and remove this check ES2PANDA_ASSERT(source != nullptr); + ES2PANDA_ASSERT(target != nullptr); if (source->IsETSDynamicType() || target->IsETSDynamicType()) { if (!(source->IsETSDynamicType() && target->IsETSDynamicType())) { return false; diff --git a/ets2panda/declgen_ets2ts/declgenEts2Ts.cpp b/ets2panda/declgen_ets2ts/declgenEts2Ts.cpp index 2786524361..8951849eec 100644 --- a/ets2panda/declgen_ets2ts/declgenEts2Ts.cpp +++ b/ets2panda/declgen_ets2ts/declgenEts2Ts.cpp @@ -1669,6 +1669,7 @@ bool TSDeclGen::GenInterfaceProp(const ir::MethodDefinition *methodDef) OutDts("?"); } OutDts(": "); + ES2PANDA_ASSERT(methodDef->Function() != nullptr); GenType(methodDef->Function()->Signature()->ReturnType()); OutDts(";"); OutEndlDts(); diff --git a/ets2panda/parser/ETSparser.cpp b/ets2panda/parser/ETSparser.cpp index fdd530052b..184c194561 100644 --- a/ets2panda/parser/ETSparser.cpp +++ b/ets2panda/parser/ETSparser.cpp @@ -159,7 +159,6 @@ void ETSParser::ParseFileHeaderFlag(lexer::SourcePosition startLoc, ArenaVector< auto *exprStatementNode = AllocNode(fileHeaderFlag); ES2PANDA_ASSERT(exprStatementNode != nullptr); exprStatementNode->SetRange({startLoc, fileHeaderFlag->End()}); - ES2PANDA_ASSERT(exprStatementNode != nullptr); ConsumeSemicolon(exprStatementNode); if (statements != nullptr) { statements->push_back(exprStatementNode); @@ -1159,6 +1158,7 @@ ir::Statement *ETSParser::ParseExport(lexer::SourcePosition startLoc, ir::Modifi auto *reExportDeclaration = ParseImportPathBuildImport(std::move(specifiers), true, startLoc, ir::ImportKinds::ALL); auto reExport = AllocNode(reExportDeclaration, std::vector(), GetProgram()->AbsoluteName(), Allocator()); + ES2PANDA_ASSERT(reExport != nullptr); reExport->AddModifier(modifiers); return reExport; } -- Gitee