Browse Source

Merge branch 'PHP-7.0'

* PHP-7.0:
  Fixed bug #72197 pg_lo_create arbitrary read
pull/1899/merge
Anatol Belski 10 years ago
parent
commit
00390449c6
  1. 4
      ext/pgsql/pgsql.c
  2. 35
      ext/pgsql/tests/bug72197.phpt

4
ext/pgsql/pgsql.c

@ -3252,8 +3252,10 @@ PHP_FUNCTION(pg_lo_create)
if (pgsql_link == NULL) {
link = FETCH_DEFAULT_LINK();
CHECK_DEFAULT_LINK(link);
} else {
} else if ((Z_TYPE_P(pgsql_link) == IS_RESOURCE)) {
link = Z_RES_P(pgsql_link);
} else {
link = NULL;
}
if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {

35
ext/pgsql/tests/bug72197.phpt

@ -0,0 +1,35 @@
--TEST--
Bug #72197 pg_lo_create arbitrary read
--SKIPIF--
<?php include("skipif.inc"); ?>
--FILE--
<?php
/* This shouldn't crash. */
$var1=-32768;
$var2="12";
pg_lo_create($var1, $var2);
/* This should work correctly. */
include('config.inc');
/* Check with explicit link. */
$conn = pg_connect($conn_str);
pg_query($conn, "BEGIN");
$oid = pg_lo_create($conn);
var_dump($oid);
/* Check with default link */
$oid = pg_lo_create();
var_dump($oid);
/* don't commit */
pg_query($conn, "ROLLBACK");
pg_close($conn);
?>
==DONE==
--EXPECTF--
Warning: pg_lo_create(): supplied resource is not a valid PostgreSQL link resource in %sbug72197.php on line %d
int(%d)
int(%d)
==DONE==
Loading…
Cancel
Save