php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #54242 dba_insert returns true if key already exists
Submitted: 2011-03-13 15:11 UTC Modified: 2011-03-13 15:53 UTC
From: marc-bennewitz at arcor dot de Assigned: felipe
Status: Closed Package: DBM/DBA related
PHP Version: 5.3.5 OS: Linux
Private report: No CVE-ID:
 [2011-03-13 15:11 UTC] marc-bennewitz at arcor dot de
Description:
------------
dba_insert returns true if key already exists using handler 'flatfile'

Test script:
---------------
$path = __DIR__ . '/test.dba';
$mode = 'c';
$handler = 'flatfile';

@unlink($path);
$dba = dba_open($path, $mode, $handler);

// first insert success
var_dump(dba_insert('key', 'value', $dba));

// second insert failed -> already exists
var_dump(dba_insert('key', 'value', $dba));

Expected result:
----------------
bool(true)
PHP Warning:  dba_insert(key): Key already exists in /mnt/workspace/zf2/cache/tests/test_dba.php on line 15

Warning: dba_insert(key): Key already exists in /mnt/workspace/zf2/cache/tests/test_dba.php on line 15
bool(false)

Actual result:
--------------
bool(true)
PHP Warning:  dba_insert(key): Key already exists in /mnt/workspace/zf2/cache/tests/test_dba.php on line 15

Warning: dba_insert(key): Key already exists in /mnt/workspace/zf2/cache/tests/test_dba.php on line 15
bool(true)

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2011-03-13 15:21 UTC] felipe@php.net
Automatic comment from SVN on behalf of felipe
Revision: http://svn.php.net/viewvc/?view=revision&revision=309172
Log: - Fixed bug #54242 (dba_insert returns true if key already exists)
 [2011-03-13 15:23 UTC] felipe@php.net
-Status: Open +Status: Closed -Assigned To: +Assigned To: felipe
 [2011-03-13 15:23 UTC] felipe@php.net
This bug has been fixed in SVN.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.

The bug has been fixed in trunk, I'll merge it in 5.3 branch when the 5.3.6 got released.

Thanks.
 [2011-03-13 15:51 UTC] marc-bennewitz at arcor dot de
Much thanks for the very fast fix !

But on a little bit more tests I found similar problems with the 'inifile' handler -> returns true on second insert without a warning

PS: not tested the other handlers yet.
 [2011-03-13 15:53 UTC] felipe@php.net
Okay, I'll check it.
 [2011-03-13 15:57 UTC] felipe@php.net
Automatic comment from SVN on behalf of felipe
Revision: http://svn.php.net/viewvc/?view=revision&revision=309174
Log: - Fix infile return on duplicated key (related to bug #54242)
 [2011-03-17 12:43 UTC] felipe@php.net
Automatic comment from SVN on behalf of felipe
Revision: http://svn.php.net/viewvc/?view=revision&revision=309341
Log: - Fix infile return on duplicated key (related to bug #54242)
 
PHP Copyright © 2001-2014 The PHP Group
All rights reserved.
Last updated: Sun Apr 20 08:02:33 2014 UTC