diff options
| author | Anatol Belski <ab@php.net> | 2015-11-05 19:48:08 +0100 |
|---|---|---|
| committer | Anatol Belski <ab@php.net> | 2015-11-05 19:48:08 +0100 |
| commit | 1184f0aca5a4fafc893f131f6012dc44cf5846c4 (patch) | |
| tree | b154d49902301bc5ff6294bccb929fad9a8844d2 | |
| parent | 1fcadf67e652622577ab0467e40c812e132ec9f3 (diff) | |
| download | php-git-1184f0aca5a4fafc893f131f6012dc44cf5846c4.tar.gz | |
add test for bug #70861
| -rw-r--r-- | ext/pdo_pgsql/tests/bug70861.phpt | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/ext/pdo_pgsql/tests/bug70861.phpt b/ext/pdo_pgsql/tests/bug70861.phpt new file mode 100644 index 0000000000..7edebba1e6 --- /dev/null +++ b/ext/pdo_pgsql/tests/bug70861.phpt @@ -0,0 +1,46 @@ +--TEST-- +Bug #70861 Segmentation fault in pdo_parse_params() during Drupal 8 test suite +--SKIPIF-- +<?php +if (!extension_loaded('pdo') || !extension_loaded('pdo_pgsql')) die('skip not loaded'); +require dirname(__FILE__) . '/config.inc'; +require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc'; +PDOTest::skip(); +?> +--FILE-- +<?php +require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc'; +$db = PDOTest::test_factory(dirname(__FILE__) . '/common.phpt'); + +$db->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, true); + +try { + @$db->query("SET bytea_output = 'escape'"); +} catch (Exception $e) { +} + +$db->query('DROP TABLE IF EXISTS test_blob_crash CASCADE'); +$db->query('CREATE TABLE test_blob_crash (id SERIAL NOT NULL, blob1 BYTEA)'); + +class HelloWrapper { + public function stream_open() { return true; } + public function stream_eof() { return true; } + public function stream_read() { return NULL; } + public function stream_stat() { return array(); } +} +stream_wrapper_register("hello", "HelloWrapper"); + +$f = fopen("hello://there", "r"); + +$stmt = $db->prepare("INSERT INTO test_one_blob (blob1) VALUES (:foo)", array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL)); + +$stmt->bindparam(':foo', $f, PDO::PARAM_LOB); +$stmt->execute(); + +fclose($f); + +?> ++++DONE+++ +--EXPECTF-- +%a ++++DONE+++ |
