Re: SegFault in 7.0.3 libpq.so.2.1

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: SegFault in 7.0.3 libpq.so.2.1
Дата
Msg-id 8497.979918854@sss.pgh.pa.us
обсуждение исходный текст
Ответ на SegFault in 7.0.3 libpq.so.2.1  ("Heinz Ekker" <hekker@netway.at>)
Список pgsql-hackers
"Heinz Ekker" <hekker@netway.at> writes:
> In my setup, which is RedHat 7.0, libc-2.2, glibc 2.96 (yes, the bad one)
> and perl 5.6.0 with DBI-1.14 and DBD-Pg-0.95 libpq.so.2.1 segfaults due to
> a null pointer dereference in printfPQExpBuffer.

> (gdb) bt
> #0  _IO_vsnprintf (string=0x0, maxlen=255,
>     format=0x401f5ce0 "PQsendQuery() -- There is no connection to the
> backend.\n
> ", args=0xbffff620) at vsnprintf.c:127
> #1  0x401f4c2f in printfPQExpBuffer () from /opt/postgres/lib/libpq.so.2.1
> #2  0x401f0307 in PQsendQuery () from /opt/postgres/lib/libpq.so.2.1
> #3  0x401f0dc9 in PQexec () from /opt/postgres/lib/libpq.so.2.1
> #4  0x401e455c in dbd_db_commit ()
>    from /usr/lib/perl5/site_perl/5.6.0/i386-linux/auto/DBD/Pg/Pg.so
> #5  0x401e10c6 in XS_DBD__Pg__db_commit ()
>    from /usr/lib/perl5/site_perl/5.6.0/i386-linux/auto/DBD/Pg/Pg.so
> #6  0x401d57f7 in XS_DBI_dispatch ()
>    from /usr/lib/perl5/site_perl/5.6.0/i386-linux/auto/DBI/DBI.so
> #7  0x809ddae in Perl_pp_entersub ()
> #8  0x809865a in Perl_runops_standard ()
> #9  0x805bfbe in perl_run ()
> #10 0x805bd22 in perl_run ()
> #11 0x8059a11 in main ()

I am going to guess that the root problem is in the Perl code: I suspect
that PQexec is being handed a bogus PGconn pointer --- possibly a
pointer to a connection object that had already been closed.  Can't
prove it on this amount of data, however.

It does look like libpq will behave ungracefully in that case :-(.
Will fix that part.
        regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Re: Changes to include files
Следующее
От: Michael Meskes
Дата:
Сообщение: Re: Re: Changes to include files