From 888070dcdae9d64a0f33f04cf47f23b7f451add0 Mon Sep 17 00:00:00 2001 From: Christian Hornung Date: Sat, 4 Nov 2006 10:57:59 +0000 Subject: [PATCH] Fixed SD2-1092: FxCop Crashed #Develop while checking Serrlongue source code. MSBuild loggers need to check for a valid filename before passing it to the System.IO.Path.* methods. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2018 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- src/AddIns/Misc/CodeAnalysis/Src/FxCopLogger.cs | 4 +++- src/Main/Base/Project/Src/Project/MSBuildEngine.cs | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/AddIns/Misc/CodeAnalysis/Src/FxCopLogger.cs b/src/AddIns/Misc/CodeAnalysis/Src/FxCopLogger.cs index cc496cc8b1..3cb671c2d7 100644 --- a/src/AddIns/Misc/CodeAnalysis/Src/FxCopLogger.cs +++ b/src/AddIns/Misc/CodeAnalysis/Src/FxCopLogger.cs @@ -7,6 +7,7 @@ using System; using System.IO; +using ICSharpCode.Core; using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Dom; using ICSharpCode.SharpDevelop.Project; @@ -85,7 +86,8 @@ namespace ICSharpCode.CodeAnalysis { string[] moreData = (subcategory ?? "").Split('|'); BuildError err = engine.CurrentErrorOrWarning; - if (Path.GetFileName(file) == "SharpDevelop.CodeAnalysis.targets") { + if (FileUtility.IsValidFileName(file) && + Path.GetFileName(file) == "SharpDevelop.CodeAnalysis.targets") { err.FileName = null; } IProject project = ProjectService.GetProject(engine.CurrentProjectFile); diff --git a/src/Main/Base/Project/Src/Project/MSBuildEngine.cs b/src/Main/Base/Project/Src/Project/MSBuildEngine.cs index 066dbc05e6..a80e31360b 100644 --- a/src/Main/Base/Project/Src/Project/MSBuildEngine.cs +++ b/src/Main/Base/Project/Src/Project/MSBuildEngine.cs @@ -371,7 +371,7 @@ namespace ICSharpCode.SharpDevelop.Project { if (string.Equals(file, activeTaskName, StringComparison.InvariantCultureIgnoreCase)) { file = ""; - } else { + } else if (FileUtility.IsValidFileName(file)) { bool isShortFileName = file == Path.GetFileNameWithoutExtension(file); if (engine.CurrentProjectFile != null) { file = Path.Combine(Path.GetDirectoryName(engine.CurrentProjectFile), file);