Subject: Re: bug#2435: Bug 2435

From: Kenichi Handa <[email-masked]>
Date: Fri, 06 Mar 2009 12:38:07 +0900

In article <[email-masked]>, Stefan Monnier <[email-masked]> writes:

> > It will fix the current problem of bufp contents being
> > changed by recursive call, but we still have a danger of
> > Lisp code being called in re_compile_pattern, which may lead
> > to relocation of string data pointed by the arg "pattern".
> > So, I think we must avoid any Lisp calls within
> > re_compile_pattern.

> Indeed, tho it's not clear how we could do that.  One way that occurs to
> me is: if we need to `load' or do some such dangerous operation in
> re_compile_pattern, signal an error so we exit re_compile_pattern.
> Then catch this error in the calling code where we can do the
> corresponding operation safely and call re_compile_pattern again.
> Kind of ugly, but for autoload-style operations it seems acceptable.

We should take care of re_search_2 and re_match_2_internal
too.

If the problem is only the call of openp in
load_charset_map_from_file, and building various Lisp object
is ok, we can change load_charset_map_from_file to open a
charset map by itself without using openp.

---
Kenichi Handa
[email-masked]