Opened 14 years ago
Closed 14 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 )
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.