Template.ParseLiquid throws NullReferenceException
Metalnem opened this issue · comments
Nemanja Mijailovic commented
Template.ParseLiquid can sometimes throw NullReferenceException instead of storing error details in the resulting template. Here's the full program that reproduces this:
namespace Scriban.Run
{
public class Program
{
public static void Main(string[] args)
{
Template.ParseLiquid("{%endunless");
}
}
}
And here's the full stack trace:
Exception has occurred: CLR/System.NullReferenceException
An unhandled exception of type 'System.NullReferenceException' occurred in Scriban.dll: 'Object reference not set to an instance of an object.'
at Scriban.Parsing.Parser.ExpectEndOfStatement(ScriptStatement statement)
at Scriban.Parsing.Parser.ParseLiquidStatement(String identifier, ScriptStatement parent, ScriptStatement& statement, Boolean& hasEnd, Boolean& nextStatement)
at Scriban.Parsing.Parser.TryParseStatement(ScriptStatement parent, ScriptStatement& statement, Boolean& hasEnd)
at Scriban.Parsing.Parser.ParseBlockStatement(ScriptStatement parentStatement)
at Scriban.Parsing.Parser.Run()
at Scriban.Template.ParseInternal(String text, String sourceFilePath)
at Scriban.Template.ParseLiquid(String text, String sourceFilePath, Nullable`1 parserOptions, Nullable`1 lexerOptions)
I'm using .NET Core 2.2 and the latest NuGet alpha version of Scriban (2.0.0-alpha-005).
Found via SharpFuzz.
Alexandre Mutel commented
Fixed in 2.0.0+