On Jan 14, 2009, at 10:12 AM, Dmitry V. Levin wrote:
On Wed, Jan 14, 2009 at 08:06:09AM -0500, Jeff Johnson wrote:
When using yum+rpmlib, there appears to be confusions about which
"regcomp" symbol is to be used. Here's a trace from valgrind:
==1401==
==1401== Invalid write of size 1
==1401== at 0x42A4770: regcomp (in /lib/libc-2.8.90.so)
==1401== by 0x4AB97FB: mireRegcomp (mire.c:379)
==1401== by 0x4A52FA7: rpmEVRmire (rpmevr.c:154)
==1401== by 0x4A5300E: rpmEVRparse (rpmevr.c:164)
==1401== by 0x49E10F6: rpmdsCompare (rpmds.c:3655)
==1401== by 0x49E181D: rpmdsAnyMatchesDep (rpmds.c:3807)
==1401== by 0x49B8BF0: rpmtsAddObsoletes (depends.c:481)
==1401== by 0x49B984B: rpmtsAddInstallElement (depends.c:796)
==1401== by 0x496F56A: rpmts_AddInstall (rpmts-py.c:440)
==1401== by 0x40A0AF8: PyCFunction_Call (in /usr/lib/
libpython2.5.so.1.0)
==1401== by 0x40F0CEF: PyEval_EvalFrameEx (in /usr/lib/
libpython2.5.so.1.0)
==1401== by 0x40F2964: PyEval_EvalCodeEx (in /usr/lib/
libpython2.5.so.1.0)
==1401== Address 0x62b31c4 is not stack'd, malloc'd or (recently)
free'd
That forces MANDATORY INTERNAL PCRE always afaict.
There are other methods to avoid this issue, e.g.
http://rpm5.org/community/rpm-devel/1562.html
Thank you. I will add identical #defines to rpmio/mire.c
today, and that will fix the yum+rpmlib problem.
The lurking issue is that PCRE patterns are being passed
through a POSIX regcomp(3)/regexec(3) API.
And the fundamental issue is choosing PCRE or ERE or both
or either or ....
Choosing a *RE dialect needs to be resolved so that patterns can be
added
to *.rpm content portably and reliably.
73 de Jeff
______________________________________________________________________
RPM Package Manager http://rpm5.org
Developer Communication List rpm-devel@rpm5.org