You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by bu...@apache.org on 2003/04/01 03:20:46 UTC

DO NOT REPLY [Bug 18542] New: - XMLString::transcode crashes when application is using the release build of Xerces-C++

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=18542>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=18542

XMLString::transcode crashes when application is using the release build of Xerces-C++

           Summary: XMLString::transcode crashes when application is using
                    the release build of Xerces-C++
           Product: Xerces-C++
           Version: 2.2.0
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Critical
          Priority: Other
         Component: Utilities
        AssignedTo: xerces-c-dev@xml.apache.org
        ReportedBy: tecapache@olano.org


This is also a problem with 2.1.0.  In fact, it's the first one I tried.  I 
downloaded 2.2.0 in the hope that it would not have the same problem.

The code at the bottom of this description consistently crashes on the 6th (or 
so) iteration of the loop if I'm linking with and using the Release build of 
Xerces-C++.  But when I use the Debug build, it works fine.

I am building a library that our customers will use and so will have to 
distribute certain DLLs including Xerces.  I was content with just releasing 
the Debug dll but unfortunately, it seems to rely on msvcrtd.dll and 
msvcirtd.dll, which are not redistributable themselves.

Here is the source code that will help you reproduce the problem:

#include "stdafx.h"

#include <xercesc/parsers/XercesDOMParser.hpp>
#include <xercesc/util/PlatformUtils.hpp>

int _tmain(int argc, _TCHAR* argv[])
{
	XMLPlatformUtils::Initialize();

	for (int i = 0; i < 2000; ++i)
	{
		char s[10];
		sprintf( s, "%d", i );
		XMLCh *temp = XMLString::transcode( s );
		wprintf( temp );
		delete [] temp;
	}

	XMLPlatformUtils::Terminate();
}

Thanks,
Ever

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-c-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-c-dev-help@xml.apache.org