Re: Expat and Open Watcom

Michael Greene <[email protected]>
Newsgroups gmane.text.xml.expat.general
Message-ID <[email protected]>
Michael Greene wrote:
> Karl Waclawek wrote:
>> Michael Greene wrote:
>>> Karl,
>>>
>>> The source of my "out of memory" errors when running XML_TEST_SUITE 
>>> are due to the test file size and using readfilemap.c. The test suite 
>>> files are size 0, so malloc( 0 ) returns NULL and I get a false "out 
>>> of memory" error. I assume that any build that uses readfilemap.c 
>>> would have this return. Would it be better to do this:
>>>
>>>    nbytes = sb.st_size;
>>> +  if(nbytes == 0) {
>>> +    close(fd);
>>> +    return 1;
>>> +  }
>>>    p = malloc(nbytes);
>>>    if (!p) {
>>> +    close(fd);
>>>      return 0;
>>>    }
>>>
>>> So that nbytes is checked for 0 size and return 1 ?
>>>
>>> With this change and a couple other defines I am at:
>>>
>>> Passed: 1773
>>> Failed: 37
>>>
>>>
>> That sounds pretty good!
>>
>> Would you please file a bug report for readfilemap.c?
>> I'll then commit your patch.
>>
>> Thanks,
>>
>> Karl
>>
> 
> Submitted #1513566 - sorry about the WATCOM define include.
> 
> MikeG

Karl,

Just as a side note I compiled expat 2.0.0 with my linux system to 
verify my Open Watcom build results. Good news my Open Watcom version 
only gives me these additional errors over the linux - gcc build:

Output differs: xmltest/valid/sa/069.xml
Output differs: xmltest/valid/sa/076.xml
Output differs: xmltest/valid/sa/090.xml
Output differs: xmltest/valid/sa/091.xml

However, the linux - gcc build had these errors (not in order):

003.ent: Invalid argument
In xmltest/valid/ext-sa/: 003.xml:5:5: error in processing external 
entity reference

010.ent: Invalid argument
In xmltest/valid/ext-sa/: 010.xml:5:5: error in processing external 
entity reference

001.ent: Invalid argument
In xmltest/valid/not-sa/: 001.xml:3:1: error in processing external 
entity reference

003-2.ent: Invalid argument
In xmltest/valid/not-sa/: 003-1.ent:3:23: error in processing external 
entity reference

null.ent: Invalid argument
In sun/valid/: ext01.xml:9:21: error in processing external entity reference

p31pass1.dtd: Invalid argument
In oasis/: p31pass1.xml:1:58: error in processing external entity reference

050.xml: Invalid argument

Expected well-formed: oasis/p39fail3.xml

Reason I call this out is because I think it is the same problem in 
unixfilemap.c. The mmap( ) returns failed because of zero file size when 
it should have a check like readfilemap.c (my fix) and win32filemap.c. 
It is rare for me to start linux and just as rare to use gcc.

MikeG
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.