Skip to content

Commit 433976f

Browse files
committed
Merge branch 'PHP-5.6' into PHP-7.0
2 parents 51d19c1 + 84512a1 commit 433976f

File tree

3 files changed

+76
-0
lines changed

3 files changed

+76
-0
lines changed

NEWS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ PHP NEWS
1414
. Fixed bug #72922 (COM called from PHP does not return out parameters).
1515
(Anatol)
1616

17+
- Dba:
18+
. Fixed bug #70825 (Cannot fetch multiple values with group in ini file).
19+
(cmb)
20+
1721
- FTP:
1822
. Fixed bug #70195 (Cannot upload file using ftp_put to FTPES with
1923
require_ssl_reuse). (Benedict Singer)

ext/dba/libinifile/inifile.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,7 @@ val_type inifile_fetch(inifile *dba, const key_type *key, int skip) {
250250
if (skip == -1 && dba->next.key.group && dba->next.key.name && !inifile_key_cmp(&dba->next.key, key)) {
251251
/* we got position already from last fetch */
252252
php_stream_seek(dba->fp, dba->next.pos, SEEK_SET);
253+
ln.key.group = estrdup(dba->next.key.group);
253254
} else {
254255
/* specific instance or not same key -> restart search */
255256
/* the slow way: restart and seacrch */

ext/dba/tests/bug70825.phpt

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
--TEST--
2+
Bug #70825 (Cannot fetch multiple values with group in ini file)
3+
--SKIPIF--
4+
<?php
5+
if (!extension_loaded('dba')) die('skip dba extension not available');
6+
if (!in_array('inifile', dba_handlers())) die('skip inifile handler not available');
7+
?>
8+
--FILE--
9+
<?php
10+
$filename = __DIR__ . DIRECTORY_SEPARATOR . 'bug70825.ini';
11+
12+
$db = dba_open($filename, 'n', 'inifile');
13+
dba_insert('foo', 23, $db);
14+
dba_insert('foo', 42, $db);
15+
dba_insert('foo', 1337, $db);
16+
var_dump(dba_fetch('foo', -1, $db));
17+
var_dump(dba_fetch('foo', -1, $db));
18+
var_dump(dba_fetch('foo', -1, $db));
19+
dba_close($db);
20+
unlink($filename);
21+
22+
$db = dba_open($filename, 'n', 'inifile');
23+
dba_insert(['foo', 'bar'], 23, $db);
24+
dba_insert(['foo', 'bar'], 42, $db);
25+
dba_insert(['foo', 'bar'], 1337, $db);
26+
var_dump(dba_fetch(['foo', 'bar'], -1, $db));
27+
var_dump(dba_fetch(['foo', 'bar'], -1, $db));
28+
var_dump(dba_fetch(['foo', 'bar'], -1, $db));
29+
dba_close($db);
30+
unlink($filename);
31+
32+
$db = dba_open($filename, 'n', 'inifile');
33+
dba_insert('[foo]bar', 23, $db);
34+
dba_insert('[foo]bar', 42, $db);
35+
dba_insert('[foo]bar', 1337, $db);
36+
var_dump(dba_fetch('[foo]bar', -1, $db));
37+
var_dump(dba_fetch('[foo]bar', -1, $db));
38+
var_dump(dba_fetch('[foo]bar', -1, $db));
39+
dba_close($db);
40+
unlink($filename);
41+
42+
$db = dba_open($filename, 'n', 'inifile');
43+
dba_insert('[foo]bar', 23, $db);
44+
dba_insert('[foo]bar', 42, $db);
45+
dba_insert('[foo]bar', 1337, $db);
46+
var_dump(dba_fetch('[foo]bar', 0, $db));
47+
var_dump(dba_fetch('[foo]bar', 1, $db));
48+
var_dump(dba_fetch('[foo]bar', 2, $db));
49+
dba_close($db);
50+
unlink($filename);
51+
?>
52+
==DONE==
53+
--EXPECT--
54+
string(2) "23"
55+
string(2) "42"
56+
string(4) "1337"
57+
string(2) "23"
58+
string(2) "42"
59+
string(4) "1337"
60+
string(2) "23"
61+
string(2) "42"
62+
string(4) "1337"
63+
string(2) "23"
64+
string(2) "42"
65+
string(4) "1337"
66+
==DONE==
67+
--CLEAN--
68+
<?php
69+
$filename = __DIR__ . DIRECTORY_SEPARATOR . 'bug70825.ini';
70+
unlink($filename);
71+
?>

0 commit comments

Comments
 (0)