From 87a1d177bcdf8f04086dcd197f4460d8af4198b6 Mon Sep 17 00:00:00 2001 From: tpa95 Date: Thu, 19 Feb 2026 13:18:20 +0300 Subject: [PATCH] Fix memory leak in EmitGenericParamConstraints Free the per-parameter buffers stored in pConstraintsArr and pGPConstraintsArr before deleting the pointer arrays. Previously only the outer arrays were deleted, leaking the inner allocations for each type parameter. --- src/coreclr/ilasm/assembler.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/coreclr/ilasm/assembler.cpp b/src/coreclr/ilasm/assembler.cpp index 6753343230ec24..aaafa258a5be10 100644 --- a/src/coreclr/ilasm/assembler.cpp +++ b/src/coreclr/ilasm/assembler.cpp @@ -2756,6 +2756,12 @@ void Assembler::EmitGenericParamConstraints(int numTyPars, TyParDescr* pTyPars, EmitCustomAttributes(tkOwnerOfCA, pGPC->CAList()); } + for (paramIndex = 0; paramIndex < numTyPars; paramIndex++) + { + delete[] pConstraintsArr[paramIndex]; + delete[] pGPConstraintsArr[paramIndex]; + } + delete[] nConstraintsArr; delete[] nConstraintIndexArr; delete[] pConstraintsArr;