#23778 [Fbk->NoF]: The keys in dba_fetch() and dba_exists() require a terminating null character.

From: Date: Thu, 29 May 2003 00:51:30 +0000
Subject: #23778 [Fbk->NoF]: The keys in dba_fetch() and dba_exists() require a terminating null character.
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-40615@lists.php.net to get a copy of this message
ID: 23778 Updated by: sniper@php.net Reported By: bnies at bluewin dot ch -Status: Feedback +Status: No Feedback Bug Type: DBM/DBA related Operating System: SunOS ducati 5.8 Generic_108528- PHP Version: 4.3.1 Assigned To: helly New Comment: No feedback was provided. The bug is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so and change the status of the bug back to "Open". Thank you. Previous Comments: ------------------------------------------------------------------------ [2003-05-23 13:46:38] helly@php.net Please execute: php runtests-php ext/dba and pate the output here. ------------------------------------------------------------------------ [2003-05-23 08:41:40] derick@php.net Please try using this CVS snapshot: http://snaps.php.net/php4-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php4-win32-STABLE-latest.zip ------------------------------------------------------------------------ [2003-05-23 08:22:02] bnies at bluewin dot ch When doing a dba_exists() or dba_fetch() on a ndbm database then one has to attach a "\0" character to the key string that it matches. Configuration: ./configure --prefix=/opt/apache \ --with-apxs2=/opt/apache/bin/apxs \ --enable-safe-mode \ --with-openssl=/opt/openssl \ --with-ldap=/opt/openldap \ --with-imap=/opt/uw-imap \ --with-config-file-path=/opt/apache/conf \ --enable-dba \ --with-dbm \ --with-ndbm Script that explains the problem: $alias = "some string"; $id = dba_open($ALIASES_FILE, 'r', 'ndbm'); $key = dba_firstkey($id); # $key contains trailing \0 char print dba_fetch($alias, $id); # does not match print dba_fetch("$alias\0", $id); # works dba_close($id); Don't know whether it works with other dba handlers or other PHP version. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=23778&edit=1

« previous php.bugs (#40615) next »