DBM Support on Windows truncates values
| Bug #16190 | DBM Support on Windows truncates values | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Submitted: | 2002-03-20 12:43 UTC | Modified: | 2002-11-13 09:08 UTC |
|
||||||||||
| From: | holler at ergo-soft dot com | Assigned: | helly (profile) | |||||||||||
| Status: | Closed | Package: | DBM/DBA related | |||||||||||
| PHP Version: | 4.3.0-dev | OS: | Windows | |||||||||||
| Private report: | No | CVE-ID: | None | |||||||||||
[2002-03-20 12:43 UTC] holler at ergo-soft dot com
The DBM-Functions on Windows truncates the values (cuts 1. char)
excamplecode:
<?php
$d = dbmopen('testfile.dbm', 'c');
dbminsert($d, '0', 'Testtext1');
dbminsert($d, '1', 'Testtext2');
dbminsert($d, '2', 'Testtext3');
echo dbmfetch($d, '0') . '<br>';
echo dbmfetch($d, '1') . '<br>';
echo dbmfetch($d, '2') . '<br>';
dbmclose($d);
?>
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2002-03-20 12:48 UTC] holler at ergo-soft dot com
The DBM-Functions on Windows truncates the values (cuts 1. char) examplecode: <?php $d = dbmopen('testfile.dbm', 'c'); dbminsert($d, '0', 'Testtext1'); dbminsert($d, '1', 'Testtext2'); dbminsert($d, '2', 'Testtext3'); echo dbmfetch($d, '0') . '<br>'; echo dbmfetch($d, '1') . '<br>'; echo dbmfetch($d, '2') . '<br>'; dbmclose($d); ?>[2002-07-06 12:52 UTC] d dot crawford at blueyonder dot co dot uk
[2002-08-05 18:25 UTC] t2315 at freemail dot hu
[2002-08-12 23:47 UTC] kalowsky@php.net
[2002-08-14 18:00 UTC] sniper@php.net
[2002-08-17 00:51 UTC] sfox@php.net
[2002-11-12 22:11 UTC] helly@php.net
[marcus@zaphod php4-HEAD]$ php -r 'ini_set("magic_quotes_runtime",1);$db=dbmopen("db","n");dbmreplace($db,"7","alpha");var_dump(dbmfetch($db,"7"));dbmclose($db);' string(5) "alpha" My windowsXP reports: string(6) "lpha\0" that means the original length of the windows result is 5 "lpha" plus one zero byte. that implies the fetch function starts reading after 'a' or skips 'a' on windows. the only thing i can think of is fgets() returns the wrong filepointer on windows or read() starts reading at current offset +1. Maybe this is because we are mixing fgets with read perhaps we should use fgets twice.[2002-11-13 09:08 UTC] helly@php.net