Skip to content

Commit 0aadab0

Browse files
committed
add test
1 parent 74ba88e commit 0aadab0

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

ext/pdo_mysql/tests/bug66141.phpt

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
--TEST--
2+
Bug #66141 (mysqlnd quote function is wrong with NO_BACKSLASH_ESCAPES after failed query)
3+
--SKIPIF--
4+
<?php
5+
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc');
6+
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
7+
MySQLPDOTest::skip();
8+
?>
9+
--FILE--
10+
<?php
11+
include __DIR__ . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc';
12+
$db = MySQLPDOTest::factory();
13+
14+
$input = 'Something\', 1 as one, 2 as two FROM dual; -- f';
15+
16+
$quotedInput0 = $db->quote($input);
17+
18+
$db->query('set session sql_mode="NO_BACKSLASH_ESCAPES"');
19+
20+
// injection text from some user input
21+
22+
$quotedInput1 = $db->quote($input);
23+
24+
$db->query('something that throws an exception');
25+
26+
$quotedInput2 = $db->quote($input);
27+
28+
var_dump($quotedInput0);
29+
var_dump($quotedInput1);
30+
var_dump($quotedInput2);
31+
?>
32+
done
33+
--EXPECTF--
34+
Warning: PDO::query(): SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'something that throws an exception' at line %d in %s on line %d
35+
string(50) "'Something\', 1 as one, 2 as two FROM dual; -- f'"
36+
string(50) "'Something'', 1 as one, 2 as two FROM dual; -- f'"
37+
string(50) "'Something'', 1 as one, 2 as two FROM dual; -- f'"
38+
done

0 commit comments

Comments
 (0)