[erlang-bugs] embedded pcre vs linked-in drivers

Paul Fisher pfisher@REDACTED
Thu Nov 6 15:20:08 CET 2008


We have run into an issue with the embedded pcre and linked-in drivers 
that use the libpcre.so.  Apparently the embedded version of pcre 
changes the size of the pcre_extra structure, uses those extra fields in 
pcre_exec.c AND continues to use the same pcre_xxxx function entry point 
names.  (All protected by ERLANG_INTEGRATION #define.)

When loaded the linked-in drivers bind to the pcre_xxxx functions 
provided by vm executable, and because the code of the linked-in driver 
was built with the system headers (without the extra fields in the 
pcre_extra structure) the pcre_xxxx functions proceed to step over 
storage that was not intended for them.

Corruption ensues.

I believe that one of two things needs to happen:
1) change pcre_xxxx entry points to erl_pcre_xxx (or something), 
therefore not conflicting with the system pcre linked-in drivers may 
depend on.
2) provided the functionality for these fields outside of the pcre_xxxx 
code in order to allow their use by linked-in drivers.


--
paul



More information about the erlang-bugs mailing list