[devel] Re: middleman vs pcre

Stanislav Ievlev =?iso-8859-1?q?inger_=CE=C1_altlinux=2Eorg?=
Ср Ноя 12 12:45:49 MSK 2003


On Wed, Nov 12, 2003 at 12:24:20PM +0300, Sergey Vlasov wrote:
> On Wed, Nov 12, 2003 at 11:32:49AM +0300, Stanislav Ievlev wrote:
> > On Tue, Nov 11, 2003 at 06:47:50PM +0300, Sergey Vlasov wrote:
> > > On Tue, Nov 11, 2003 at 08:36:26PM +0500, Andrey Rahmatullin wrote:
> > > Content-Description: signed data
> > > > В сообщении от 11 Ноябрь 2003 19:38 Sergey Vlasov написал(a):
> > > > 
> > > > [...]
> > > > > Попробуйте запустить программу под valgrind - он умеет отлавливать
> > > > > подобные ошибки
> > > > [...]
> > > > 
> > > > Ой блин...
> > > > 
> > > > ==16664== Invalid write of size 4
> > > > ==16664==    at 0x403261F9: regcomp (in /lib/libc-2.2.6.so)
> > > > ==16664==    by 0x806F536: reg_compile (regexp.c:33)
> > > > ==16664==    by 0x804C4E4: global_general_insert (global.c:464)
> > > > ==16664==    by 0x804ACE6: global_load (global.c:102)
> > > > ==16664==    Address 0x412BE104 is 4 bytes after a block of size 12 alloc'd
> > > > ==16664==    at 0x40026942: malloc (vg_replace_malloc.c:153)
> > > > ==16664==    by 0x806610C: xmalloc (mem.c:35)
> > > > ==16664==    by 0x806F51F: reg_compile (regexp.c:31)
> > > > ==16664==    by 0x804C4E4: global_general_insert (global.c:464)
> > > > 
> > > > И так кучу раз (похоже, что на каждый регэксп).
> > > 
> > > Вот бардак... У этой дряни что, собственное левое определение regex_t
> > > (такая гадость иногда встречается)?
> > Если это намёк на pcre, то почему сразу дрянь. Имеет право.
> > Всё что связано с regex это weekalias (как просвятил меня Дима). У
> > pcre же есть очень удобный POSIX интерфейс с поддержкой расширений
> > perl. А уж если POSIX интерфейс, то и есть regex_t. Было бы
> > удивительно если бы она (pcre) использовала glibc'шный.
> 
> Ну здесь-то явно используется regcomp из glibc.  Т.е. где-то
> перепутались заголовки и библиотеки.
Наверное забыли -lpcreposix?
> 
> Против самой pcre я не выступаю.  А вот pcreposix - это гадость, т.к.
> вполне может сломать работу POSIX regexp в других библиотеках (не
> glibc).  
Не поломает, если будут использовать что-то одно ;)
>Следовало бы делать эту эмуляцию не прямым переопределением
> regcomp/regexec/..., а через #define regcomp __pcre_regcomp в
> <pcreposix.h> - тогда это бы влияло только на файлы, которые были
> скомпилированы с #include <pcreposix.h>.
Самое смешное, что теперь так и есть ;)


> _______________________________________________
> Devel mailing list
> Devel на altlinux.ru
> http://altlinux.ru/mailman/listinfo/devel




Подробная информация о списке рассылки Devel