From e7a7f58714acd376370d682a5f4d3197d4ac9b2f Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Sun, 7 Jun 2009 12:56:43 +0000 Subject: [PATCH] * Parameters.cs (ProcessProperty): Handle invalid syntax. svn path=/trunk/mcs/; revision=135606 --- mcs/tools/xbuild/ChangeLog | 4 ++++ mcs/tools/xbuild/Parameters.cs | 20 +++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/mcs/tools/xbuild/ChangeLog b/mcs/tools/xbuild/ChangeLog index b5da323227d..841fca27a06 100644 --- a/mcs/tools/xbuild/ChangeLog +++ b/mcs/tools/xbuild/ChangeLog @@ -1,3 +1,7 @@ +2009-06-07 Ankit Jain + + * Parameters.cs (ProcessProperty): Handle invalid syntax. + 2009-06-07 Ankit Jain * SolutionParser.cs (AddGeneralSettings): Don't hardcode the default diff --git a/mcs/tools/xbuild/Parameters.cs b/mcs/tools/xbuild/Parameters.cs index a33a85211fb..81b93ebfc0b 100644 --- a/mcs/tools/xbuild/Parameters.cs +++ b/mcs/tools/xbuild/Parameters.cs @@ -190,7 +190,8 @@ namespace Mono.XBuild.CommandLine { if (s.StartsWith ("/target:") || s.StartsWith ("/t:")) { ProcessTarget (s); } else if (s.StartsWith ("/property:") || s.StartsWith ("/p:")) { - ProcessProperty (s); + if (!ProcessProperty (s)) + return false; } else if (s.StartsWith ("/logger:") || s.StartsWith ("/l:")) { ProcessLogger (s); } else if (s.StartsWith ("/verbosity:") || s.StartsWith ("/v:")) { @@ -213,15 +214,28 @@ namespace Mono.XBuild.CommandLine { targets = temp [1].Split (';'); } - internal void ProcessProperty (string s) + internal bool ProcessProperty (string s) { string[] parameter, splittedProperties, property; parameter = s.Split (':'); + if (parameter.Length != 2) { + ErrorUtilities.ReportError (5, "Property name and value expected as /p:="); + return false; + } + splittedProperties = parameter [1].Split (';'); foreach (string st in splittedProperties) { + if (st.IndexOf ('=') < 0) { + ErrorUtilities.ReportError (5, + "Invalid syntax. Property name and value expected as " + + "=[]"); + return false; + } property = st.Split ('='); - properties.SetProperty (property [0], property [1]); + properties.SetProperty (property [0], property.Length == 2 ? property [1] : ""); } + + return true; } internal void ProcessLogger (string s) -- 2.25.1