xerces-c , ... [xerces-c Bug Crash Solved]

Gareth Pearce tilps@hotmail.com
Thu Nov 7 03:13:00 GMT 2002


FOUND IT!!!

*dances about crazily*

*cough* okay back to reality

I thought it was dieing in fopen - but i was wrong - it was dieing in
strcasecmp

utils/Compilers/GCCDefs.cpp - is very stuffed up

it includes string.h

and cygwin string.h - #define stricmp strcasecmp - which is the only reason
why GCCDefs.cpp exists

this causes GCCDefs.cpp to define a function strcasecmp - which calls
strcasecmp
same thing with strnicmp/strncasecmp
so any program which uses strcasecmp (or any program which causes xerces-c
to try and call stricmp/strnicmp) - dies with an infinite loop causing stack
overflow.

this is a porting bug in xerces-c (or a cygwin conformance bug... depending
on your point of view)

a simple #ifndef __CYGWIN__ around the declaration in GCCDefs.hpp  and the
definition in GCCDefs.cpp

and life is good (or seems to be)

Please patch :)

Gareth

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list