Comment 11 for bug 1361610

Revision history for this message
Mark Ebbers (m-ebbers) wrote :

Arne,

Thank you for your quick reply but I don't think this solves my problem. It only solves it for the proof-of-concept which I made to proof, the bug in Poco regex functionality.

Our system does not even link against libPCRE but uses Poco. If I change the proof-of-concept to a Poco only solution (see attachment) I still have the problem of a non functioning regex.

$ g++ regex.cc -lPocoFoundation
$ ./a.out
Poco 0x01030600 on Linux 4.2.0-35-generic @ x86_64
Poco match 1234567890 to pattern ^[0-9]{10} matches? no
Poco match 123456789 to pattern ^[0-9]{10} matches? no
$ ldd ./a.out
 linux-vdso.so.1 => (0x00007ffe94177000)
 libPocoFoundation.so.9 => /usr/lib/libPocoFoundation.so.9 (0x00007f14dd744000)
 libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f14dd440000)
 libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f14dd229000)
 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f14dce64000)
 libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f14dcc46000)
 libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f14dca07000)
 libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f14dc7ee000)
 libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f14dc5ea000)
 librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f14dc3e1000)
 libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f14dc0db000)
 /lib64/ld-linux-x86-64.so.2 (0x000055cbc9c93000)

$ LD_PRELOAD=/lib/x86_64-linux-gnu/libpcre.so.3 ./a.out
Poco 0x01030600 on Linux 4.2.0-35-generic @ x86_64
Poco match 1234567890 to pattern ^[0-9]{10} matches? yes
Poco match 123456789 to pattern ^[0-9]{10} matches? no
$ LD_PRELOAD=/lib/x86_64-linux-gnu/libpcre.so.3 ldd ./a.out
 linux-vdso.so.1 => (0x00007ffed2c4f000)
 /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f34efa89000)
 libPocoFoundation.so.9 => /usr/lib/libPocoFoundation.so.9 (0x00007f34ef722000)
 libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f34ef41d000)
 libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f34ef207000)
 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f34eee42000)
 libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f34eec23000)
 libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f34eea0a000)
 libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f34ee806000)
 librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f34ee5fd000)
 libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f34ee2f7000)
 /lib64/ld-linux-x86-64.so.2 (0x0000564cbde41000)