#23778 [Fbk->NoF]: The keys in dba_fetch() and dba_exists() require a terminating null character.
| From: | sniper@php.net | 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