[ragel] changes to Ragel in response to the CloudFlare incident

Adrian Thurston thurston at colm.net
Thu Mar 23 07:32:44 UTC 2017

This solution is now checked in on the ragel-6 branch and master.

What's different:

Before jumping back into the machine execution in an fgoto, fcall, or 
fret in an EOF action, a check of P vs PE is done. If P is still equal 
to PE then control moves to the EOF check instead of re-entering.

Any code that correctly issues an fhold should function the same.

Any code that does not modify P will behave as if fhold was issued.


On 2017-02-28 14:45, Adrian Thurston wrote:
> I've debated a few alternatives, but I believe the correct response is
> to perform an EOF check in the code generated by fgoto in actions that
> run at EOF time. Probably specialize the action to two distinct cases
> and not touch the on-char version.

More information about the ragel-users mailing list