Re: mod_perl unhappy with libxml-parser-perl
Hi!
Is there any way I can help you (as maintainer of libxml-parser-perl)?
Thanks,
Ardo
Robert Coie <rac@intrigue.com> writes:
> I have noticed a conflict between the versions of Expat in apache-perl
> 1.3.9.10-1.21-6 and libxml-parser-perl 2.27-6 that causes memory
> corruption. I assume that the DSO apache-1.3.9/libapache-mod-perl
> 1.21 in potato is similarly affected, as I first started getting
> segfaults when running under that version.
>
> The problem arises because the "expat-lite" version of the expat
> library is compiled into apache without defining XML_DTD. The
> libExpat.so in libxml-parser-perl is compiled with XML_DTD defined,
> which, among other things, changes the size and composition of various
> data structures. If an object is allocated by the expat-lite code,
> accesses to it from the libxml-parser-perl code can clobber memory.
>
> I can think of several ways to solve the problem:
>
> (1) Delete the expat-lite directory from the Apache build tree, or
> disable it somehow. Pro: simple. Con: perhaps somebody needs it.
>
> (2) Make the expat-lite version compile with XML_DTD defined also, so
> it is compatible with the libxml-parser-perl version. Pro: saves
> expat-lite in Apache. Con: fragile; perhaps there are other
> incompatibilities, even some insoluble ones due to Apache forking
> Expat.
>
> (3) Use preprocessor hackery to rename the symbols in the expat-lite
> version, so there is no possibility of code mixing and matching. Pro:
> Solves the Cons of the first two options. Con: more difficult to do,
> introduces what could be viewed as a gratuitous incompatibility with
> the mainstream Apache distribution.
--
Ardo van Rangelrooij
home email: avrangel@flevonet.nl, ardo@debian.org
home page: http://home.flevonet.nl/~avrangel
PGP fp: 3B 1F 21 72 00 5C 3A 73 7F 72 DF D9 90 78 47 F9
Reply to: