Empty string fix not completely correct

Marand
2004-09-04
2004-09-04
  • Marand
    Marand
    2004-09-04

    Hi,
    As noted in the answer to Chentz' post about empty TAG in response, this can be fixed by setting TRpcClient.FixEmptyStrings := True, which causes TRpcClientParser.Parse to invoke FixEmptyString on the result.

    However, the code for FixEmptyString in XmlRpcCommon makes some rather alarming modifications: basically, it will replace 'empty' strings by the '[NULL]' string, and will also accept incorrect and fix XML syntax like <string></nil></string>, which no XML parser should accept per the XML spec.

    Further up the chain, the '[NULL]' string is disposed of in TRpcClientParser.DataTag (with a note saying 'ugly null string hack').

    This, in turn means that any server answering with the string value [NULL] will get improper behaviour.