Bug #2398: 'END' command to PostgresSQL causing SEGV.
| From: | lucas at slf dot cx | Date: | Tue, 28 Sep 1999 18:44:49 +0000 |
| Subject: | Bug #2398: 'END' command to PostgresSQL causing SEGV. | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-11360@lists.php.net to get a copy of this message | ||
From: lucas@slf.cx
Operating system: linux 2.2.12
PHP version: 3.0.12
PHP Bug Type: Reproduceable crash
Bug description: 'END' command to PostgresSQL causing SEGV.
Performing a pg_exec($database,"end") on a connection causes the child pid to exit with a
SEGV. This may have something to do with PostgreSQL sending a notice message through libpg.
In the interactive client, psql, there is normally a NOTICE sent to the client:
webdb=> commit;
END
webdb => end;
NOTICE: EndTransactionBlock and not inprogress/abort state
END
webdb => \q
...and in the backtrace (from running http -X inside gdb), the last mentioned function is
'defaultNoticeProcessor()':
#0 0x40222ee1 in ?? ()
#1 0x40185605 in ?? ()
#2 0x4018ceb3 in ?? ()
#3 0x4031fd1b in defaultNoticeProcessor () from /usr/local/pgsql/lib/libpq.so.2.0
#4 0x40320cf0 in getNotice () from /usr/local/pgsql/lib/libpq.so.2.0
#5 0x403202ff in parseInput () from /usr/local/pgsql/lib/libpq.so.2.0
#6 0x40320b4e in PQgetResult () from /usr/local/pgsql/lib/libpq.so.2.0
#7 0x40320ca3 in PQexec () from /usr/local/pgsql/lib/libpq.so.2.0
#8 0x40291a4c in php3_pgsql_exec () at functions/pgsql.c:124
All tested scripts worked 100% when I removed the
'BEGIN'/'COMMIT'/'END' pg_exec() statements.