diff options
author | lacak <lacak@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2015-01-19 13:01:51 +0000 |
---|---|---|
committer | lacak <lacak@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2015-01-19 13:01:51 +0000 |
commit | fc91188c91b9e16dbd2b4b26ab804bbcb7428f97 (patch) | |
tree | 70611525b103ce8bac7cc17942086677ad32ad8d | |
parent | 89652a0c9f634be40b64c2f15e8b5a58b41c6963 (diff) | |
download | fpc-fc91188c91b9e16dbd2b4b26ab804bbcb7428f97.tar.gz |
fcl-db: postgresql: Fix AV in UnprepareStatement (TPQCursor.tr is nil).
Revealed by TTestTSQLQuery.TestKeepOpenOnCommit.
Commit destroys TPQTrans object, which in destructor sets tr:=nil for all registered cursors. So attempt to Close TSQLQuery after Commit has leading to AV.
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@29507 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r-- | packages/fcl-db/src/sqldb/postgres/pqconnection.pp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/packages/fcl-db/src/sqldb/postgres/pqconnection.pp b/packages/fcl-db/src/sqldb/postgres/pqconnection.pp index 8d0321c34e..bcf43828a1 100644 --- a/packages/fcl-db/src/sqldb/postgres/pqconnection.pp +++ b/packages/fcl-db/src/sqldb/postgres/pqconnection.pp @@ -953,7 +953,7 @@ begin res:=nil; if FPrepared then begin - if PQtransactionStatus(tr.PGConn) <> PQTRANS_INERROR then + if assigned(tr) and (PQtransactionStatus(tr.PGConn) <> PQTRANS_INERROR) then begin res := PQexec(tr.PGConn,pchar('deallocate '+StmtName)); CheckResultError(res,nil,SErrUnPrepareFailed); |