• Tom Lane's avatar
    Fix intratransaction memory leaks in xml_recv, xmlconcat, xmlroot, and · 546454f8
    Tom Lane authored
    xml_parse, all arising from the same sloppy usage of parse_xml_decl.
    The original coding had that function returning its output string
    parameters in the libxml context, which is long-lived, and all but one
    of its callers neglected to free the strings afterwards.  The easiest
    and most bulletproof fix is to return the strings in the local palloc
    context instead, since that's short-lived.  This was only costing a
    dozen or two bytes per function call, but that adds up fast if the
    function is called repeatedly ...
    
    Noted while poking at the more general problem of what to do with our
    libxml memory allocation hooks.  Back-patch to 8.3, which has the
    identical coding.
    546454f8
xml.c 81.9 KB