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== 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/
>> ==1401== by 0x40F0CEF: PyEval_EvalFrameEx (in /usr/lib/
>> ==1401== by 0x40F2964: PyEval_EvalCodeEx (in /usr/lib/
>> ==1401== Address 0x62b31c4 is not stack'd, malloc'd or (recently)
>> That forces MANDATORY INTERNAL PCRE always afaict.
> There are other methods to avoid this issue, e.g.
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
to *.rpm content portably and reliably.
73 de Jeff
Received on Wed Jan 14 16:28:00 2009