diff --git a/CHANGES b/CHANGES index c40e429..039454a 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,4 @@ -CHANGES - 2011-01-14 +CHANGES - 2011-03-23 -------------------- CHANGES IN Mini-XML 2.7 @@ -9,6 +9,7 @@ CHANGES IN Mini-XML 2.7 header to preserve source compatibility (STR #118) - Updated the source headers to reference the Mini-XML license and its exceptions to the LGPL2 (STR #108) + - Fixed a memory leak when loading a badly-formed XML file (STR #121) - Added a new mxmlFindPath() function to find the value node of a named element (STR #110) - Building a static version of the library did not work on Windows diff --git a/Makefile.in b/Makefile.in index b1a292a..2930c83 100644 --- a/Makefile.in +++ b/Makefile.in @@ -373,6 +373,10 @@ testmxml: libmxml.a testmxml.o echo File descriptor test failed!; \ fi +testmxml-vg: $(LIBOBJS) testmxml.o + echo Linking $@... + $(CC) $(LDFLAGS) -o $@ testmxml.o $(LIBOBJS) $(LIBS) + testmxml.o: mxml.h diff --git a/mxml-file.c b/mxml-file.c index 212ef37..6c3a8d4 100644 --- a/mxml-file.c +++ b/mxml-file.c @@ -1565,19 +1565,22 @@ mxml_load_data( if (ch == '<' && whitespace && type == MXML_TEXT) { - node = mxmlNewText(parent, whitespace, ""); - - if (sax_cb) + if (parent) { - (*sax_cb)(node, MXML_SAX_DATA, sax_data); + node = mxmlNewText(parent, whitespace, ""); - if (!mxmlRelease(node)) - node = NULL; + if (sax_cb) + { + (*sax_cb)(node, MXML_SAX_DATA, sax_data); + + if (!mxmlRelease(node)) + node = NULL; + } + + if (!first && node) + first = node; } - if (!first && node) - first = node; - whitespace = 0; }