[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#22146: Stack overflow in reftex-parse-all
From: |
Tassilo Horn |
Subject: |
bug#22146: Stack overflow in reftex-parse-all |
Date: |
Sun, 13 Dec 2015 18:46:45 +0100 |
User-agent: |
Gnus/5.130014 (Ma Gnus v0.14) Emacs/25.0.50 (gnu/linux) |
Mosè Giordano <address@hidden> 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?
No, in Emacs 25 the regexp was broken in a way that its meaning was not
"[ and then many times something different than ]" but "[, then not
another [, and then zero or many times a ]". Now that I fixed the
regexp again, Emacs 25 breaks in the same way.
> 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.
Isn't the syntax "\\[[^]]\\{0,1000\\}\\<label"? I tried going up to a
maximum of 30000 and it still didn't overflow, so I think that's an
appropriate fix (say, maybe 2000 instead of 1000 to be extra safe).
Feel free to change `reftex-label-regexps' accordingly.
Interestingly, "x\\{0,40000\\}" gives an error:
(invalid-regexp "Invalid content of \\{\\}")
So there seems to be a (pretty random) limit...
Bye,
Tassilo
- bug#22146: Stack overflow in reftex-parse-all, Nils Kanning, 2015/12/11
- bug#22146: Stack overflow in reftex-parse-all, Mosè Giordano, 2015/12/11
- bug#22146: Stack overflow in reftex-parse-all, Tassilo Horn, 2015/12/12
- bug#22146: Stack overflow in reftex-parse-all, Nils Kanning, 2015/12/12
- bug#22146: Stack overflow in reftex-parse-all, Mosè Giordano, 2015/12/12
- bug#22146: Stack overflow in reftex-parse-all, David Kastrup, 2015/12/12
- bug#22146: Stack overflow in reftex-parse-all, Mosè Giordano, 2015/12/13
- bug#22146: Stack overflow in reftex-parse-all, David Kastrup, 2015/12/13
- bug#22146: Stack overflow in reftex-parse-all, Tassilo Horn, 2015/12/13
- bug#22146: Stack overflow in reftex-parse-all, Mosè Giordano, 2015/12/13
- bug#22146: Stack overflow in reftex-parse-all,
Tassilo Horn <=
- bug#22146: Stack overflow in reftex-parse-all, David Kastrup, 2015/12/13
- bug#22146: Stack overflow in reftex-parse-all, Tassilo Horn, 2015/12/13
- bug#22146: Stack overflow in reftex-parse-all, Mosè Giordano, 2015/12/13
- bug#22146: Stack overflow in reftex-parse-all, Tassilo Horn, 2015/12/13