• Tom Lane's avatar
    Free libxml2/libxslt resources in a safer order. · c168ba31
    Tom Lane authored
    Mark Simonetti reported that libxslt sometimes crashes for him, and that
    swapping xslt_process's object-freeing calls around to do them in reverse
    order of creation seemed to fix it.  I've not reproduced the crash, but
    valgrind clearly shows a reference to already-freed memory, which is
    consistent with the idea that shutdown of the xsltTransformContext is
    trying to reference the already-freed stylesheet or input document.
    With this patch, valgrind is no longer unhappy.
    
    I have an inquiry in to see if this is a libxslt bug or if we're just
    abusing the library; but even if it's a library bug, we'd want to adjust
    our code so it doesn't fail with unpatched libraries.
    
    Back-patch to all supported branches, because we've been doing this in
    the wrong(?) order for a long time.
    c168ba31
xslt_proc.c 5.9 KB