Opened 13 years ago

Closed 13 years ago

#727 closed defect (fixed)

FdoXmlReaderXrcs::Parse will result in crash when XML is invalid.

Reported by: leaf Owned by: gregboone
Priority: major Milestone: 3.6.0
Component: WFS Provider Version: 3.5.0
Severity: 3 Keywords:
Cc: External ID: 1366350

Description

trunk\Fdo\Unmanaged\Src\Common\Xml\ReaderXrcs.cpp

FdoBoolean FdoXmlReaderXrcs::Parse(

FdoXmlSaxHandler* saxHandler, FdoXmlSaxContext* saxContext, FdoBoolean incremental

) {

...... catch ( const XERCES_CPP_NAMESPACE::SAXParseException& ex ) {

if ( saxHandler )

PopSaxHandler();

SetSaxContext(NULL);

throw FdoXmlException::Create(

FdoException::NLSGetMessage(

FDO_NLSID(FDO_33_XMLPARSEERROR), ex.getLineNumber(), ex.getColumnNumber(), (FdoString*)FdoXmlUtilXrcs::Xrcs2Unicode(ex.getMessage()));

} ......

}

FDO_33_XMLPARSEERROR represents resource string "XML Document parse error at line %1$d column %2$d: %3$ls". Here it use "%d" to format line and column number with invalid XML. However, ex.getLineNumber() and ex.getColumnNumber() return int64 number. So it will result in crash when calling FdoException::NLSGetMessage.

Change History (1)

comment:1 by leaf, 13 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.