Commit 06037f8
committed
Fix invalid Firebird isolation level proceeding with the connection
pdo_firebird_handle_factory() raised a ValueError for an out-of-range
TRANSACTION_ISOLATION_LEVEL but only set ret = 0; zend_value_error()
queues the exception without aborting, so control fell through into the
isc_attach_database() block, opened the connection and overwrote ret with
1. The constructor then returned success with a pending ValueError and a
live handle whose isolation level was never selected. Break out of the
attach block when an exception is pending and skip the trailing
fb_interpret() error so the ValueError is the sole result; the existing
!ret cleanup closes the unused handle.
Closes GH-224301 parent 5af5614 commit 06037f8
1 file changed
Lines changed: 5 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1410 | 1410 | | |
1411 | 1411 | | |
1412 | 1412 | | |
| 1413 | + | |
| 1414 | + | |
| 1415 | + | |
| 1416 | + | |
1413 | 1417 | | |
1414 | 1418 | | |
1415 | 1419 | | |
| |||
1446 | 1450 | | |
1447 | 1451 | | |
1448 | 1452 | | |
1449 | | - | |
| 1453 | + | |
1450 | 1454 | | |
1451 | 1455 | | |
1452 | 1456 | | |
| |||
0 commit comments