Clip tag arguments are not optional
commited55e32911166173011be36f03ebb24ce08efdae
authorwm4 <wm4@nowhere>
Fri, 12 Apr 2013 16:34:30 +0000 (12 18:34 +0200)
committerwm4 <wm4@nowhere>
Fri, 12 Apr 2013 16:34:30 +0000 (12 18:34 +0200)
tree3e6e3ae3fd4173c6f0c0fc31595f95068d43a6ea
parentb55b2256e6ff3b7cad2f5c00932c21c07d01302f
Clip tag arguments are not optional

This fixes: {\clip(1,1,20,20)\clip\alpha&H1E&\c&HC7E5C0&}X

libass tries to interpret the second \clip, which has no arguments.
Since the parsing code doesn't require a starting '(', the parser will
skip over the other tags (treating them as junk) and interpret the
numbers that happen to be in the rest of the string. The result is a
bogus drawing command, which happens to rasterize an extremely wide
glyph, which takes several seconds to finish.

Make the '('  required. Neither the aegisub manual nor the vsfilter
source code have any indication that \clip without starting '(' is
allowed, so this should not break anything.
libass/ass_parse.c