Skip to content

Commit 7c6fea6

Browse files
authored
Merge pull request #62485 from mikeash/robustify-generic-params-vector
[Reflection] Bounds-check vector creation in createBoundGenericTypeReconstructingParent.
2 parents c914579 + aa84b93 commit 7c6fea6

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

include/swift/Reflection/TypeRefBuilder.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -571,8 +571,13 @@ class TypeRefBuilder {
571571

572572
auto numGenericArgs = genericParamsPerLevel[shapeIndex];
573573

574+
auto startOffsetFromEnd = argsIndex + numGenericArgs;
575+
auto endOffsetFromEnd = argsIndex;
576+
if (startOffsetFromEnd > args.size() || endOffsetFromEnd > args.size())
577+
return nullptr;
578+
574579
std::vector<const TypeRef *> genericParams(
575-
args.end() - argsIndex - numGenericArgs, args.end() - argsIndex);
580+
args.end() - startOffsetFromEnd, args.end() - endOffsetFromEnd);
576581

577582
const BoundGenericTypeRef *parent = nullptr;
578583
if (node->hasChildren()) {

0 commit comments

Comments
 (0)