Subject: bug#22146: Stack overflow in reftex-parse-all

From: Mosè Giordano <[email-masked]>
Date: Sun, 13 Dec 2015 18:11:23 +0100

Hi Tassilo,

2015-12-13 17:55 GMT+01:00 Tassilo Horn <[email-masked]>:
> David Kastrup <[email-masked]> writes:
>
>>>     (re-search-forward "\\[[^]]*\\<label")
>>>
>>> at the beginning of the buffer suggested by Nils.  So, it doesn't
>>> seem there is an incomplete match, but simply "\\[[^]]*" is too
>>> greedy.
>>
>> This expression contains only a single explicit wildcard.  A stack
>> overflow for it most certainly is a bug.  Is this really fixed in 25.1
>> or is there just a larger stack?
>
> I also get a stack overflow with this starting with a buffer size of
> about 800 lines.  But I can run
>
>   (re-search-forward reftex-everything-regexp nil t)
>
> without problems even after adding 100.000 more "foo foo foo..." lines
> to the test file...

Uh, in Emacs 24.5

    (re-search-forward "\\[[^]]*\\<label" nil t)

throws the stack overflow error, indeed I tested also this
possibility.  So are you saying that in Emacs 25.1 the noerror option
prevents stack overflow?  Anyway, how about my suggestion to use

    "\\[[^]]\{0,1000\}\\<label"

?  1000 characters are 12.5 80-column-wide lines, I think it's large enough.

Bye,
Mosè