Skip to content

Commit daac5f6

Browse files
author
Kapil Borle
committed
Use SafeGetValue on settings hashtable ast
1 parent e580f53 commit daac5f6

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

Engine/ScriptAnalyzer.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -602,6 +602,7 @@ private bool ParseProfileString(string profile, PathIntrinsics path, IOutputWrit
602602
else
603603
{
604604
HashtableAst hashTableAst = hashTableAsts.First() as HashtableAst;
605+
#if PSV3
605606
settings = GetDictionaryFromHashTableAst(
606607
hashTableAst,
607608
writer,
@@ -630,6 +631,24 @@ private bool ParseProfileString(string profile, PathIntrinsics path, IOutputWrit
630631
hasError = true;
631632
}
632633
}
634+
#else
635+
636+
try
637+
{
638+
var hashtable = hashTableAst.SafeGetValue() as Hashtable;
639+
hasError = ParseProfileHashtable(hashtable, path, writer, severityList, includeRuleList, excludeRuleList);
640+
}
641+
catch
642+
{
643+
writer.WriteError(
644+
new ErrorRecord(
645+
new ArgumentException(string.Format(CultureInfo.CurrentCulture, Strings.InvalidProfile, profile)),
646+
Strings.ConfigurationFileHasInvalidHashtable,
647+
ErrorCategory.ResourceUnavailable,
648+
profile));
649+
hasError = true;
650+
}
651+
#endif // PSV3
633652
}
634653
}
635654

Engine/Strings.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,9 @@
216216
<data name="VerboseScriptDefinitionMessage" xml:space="preserve">
217217
<value>Analyzing Script Definition.</value>
218218
</data>
219+
<data name="ConfigurationFileHasInvalidHashtable" xml:space="preserve">
220+
<value>SettingsFileHasInvalidHashtable</value>
221+
</data>
219222
<data name="ConfigurationFileHasNoHashTable" xml:space="preserve">
220223
<value>SettingsFileHasNoHashTable</value>
221224
</data>

0 commit comments

Comments
 (0)