Skip to content

Commit 6e41b7d

Browse files
committed
Buffer size is now checked before memcmp
1 parent 093d334 commit 6e41b7d

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

ext/pdo_sqlite/sqlite_driver.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -751,7 +751,7 @@ static char *make_filename_safe(const char *filename)
751751
}
752752
return estrdup(filename);
753753
}
754-
if (*filename && memcmp(filename, ":memory:", sizeof(":memory:"))) {
754+
if (*filename && (sizeof(filename) != sizeof(":memory:") || memcmp(filename, ":memory:", sizeof(":memory:")) != 0)) {
755755
char *fullpath = expand_filepath(filename, NULL);
756756

757757
if (!fullpath) {

ext/pdo_sqlite/tests/gh13991.phpt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
--TEST--
2+
Fix GH-13984: Buffer size is now checked before memcmp
3+
--EXTENSIONS--
4+
pdo_sqlite
5+
--FILE--
6+
<?php
7+
$dbfile = 'z.db';
8+
$db = new PDO('sqlite:' . $dbfile, null, null, [PDO::ATTR_PERSISTENT => true]);
9+
echo 'done!';
10+
?>
11+
--CLEAN--
12+
<?php
13+
@unlink(getcwd() . '/z.db');
14+
?>
15+
--EXPECT--
16+
done!

0 commit comments

Comments
 (0)