dotnet/msbuild

Prevent infinite recursion in Solution parser when a project is nested under itself

Open

#1,599 创建于 2017年1月22日

在 GitHub 查看
 (0 评论) (0 反应) (0 负责人)C# (1,364 fork)batch import
Area: Solution (.sln)help wantedtriaged

仓库指标

Star
 (5,062 star)
PR 合并指标
 (平均合并 11天 7小时) (30 天内合并 125 个 PR)

描述

We don't check for invalid project nestings in the solution file, so it's possible to create a solution that crashes MSBuild with stack overflow:

https://github.com/Microsoft/msbuild/blob/xplat/src/XMakeBuildEngine/Construction/Solution/ProjectInSolution.cs#L393

An example solution is: https://github.com/dotnet/corefx/blob/f6ab339f446e37505f93ef9f430801fa1dcc05b8/src/System.Collections.Immutable/System.Collections.Immutable.sln#L40-L41

Note that we should check for indirect recursion as well (loops).

贡献者指南