php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #887 Dosn't work at all ;-) Forget O_BINARY
Submitted: 1998-10-31 19:56 UTC Modified: 1998-11-23 01:07 UTC
From: edetocquev at teaser dot fr Assigned:
Status: Closed Package: dBase related
PHP Version: 3.0.5 OS: Windows 95
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: edetocquev at teaser dot fr
New email:
PHP Version: OS:

 

 [1998-10-31 19:56 UTC] edetocquev at teaser dot fr
There is a little bug in dbase function (dbase_create and dbase_open) when running PHP on Windows 95. Those functions open the file without the flag O_BINARY=0x8000 and dbase file are binary files. So when a record is added, the database is definitively corrupted.

I have found that I can pass 0x8002 to dbase_open, but there is no way to make dbase_create working properly, so I have had to modify the php3_dbase.dll.

But I think it's better to correct the bug ;-)

This append possibly on others database functions type, but I had tested only this one.

For example :

========= php-3.0.5/functions/dbase.c:500

    if ((fd = open(filename->value.str.val,
#if (WIN32|WINNT)
		O_BINARY|
#endif
		O_RDWR|O_CREAT, 0644)) < 0) {


========= php-3.0.5/dbase/dbf_head.c:229

#if (WIN32|WINNT)
    o_flags |= O_BINARY;
#endif
    if ((fd = open(cp, o_flags)) < 0) {

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [1998-11-23 01:07 UTC] jim
Fix commited to CVS. Thanks for the hint.
 
PHP Copyright © 2001-2021 The PHP Group
All rights reserved.
Last updated: Fri Dec 03 17:03:34 2021 UTC