Package: libmusicbrainz4-dev
Version: 2.1.2

When doing normal query operations with the musicbrainz C interface, it
leaks memory like a sieve because mb_Delete() doesn't actually free
the RDF parser object.  Patch is attached.

-- 
Ian Gulliver
Penguin Hosting
"Failure is not an option; it comes bundled with your Microsoft products."
diff -Naur libmusicbrainz-2.1.2/lib/rdfextract.cpp 
libmusicbrainz-2.1.2.mod/lib/rdfextract.cpp
--- libmusicbrainz-2.1.2/lib/rdfextract.cpp     2004-10-12 10:10:46.000000000 
+0200
+++ libmusicbrainz-2.1.2.mod/lib/rdfextract.cpp 2006-08-16 03:59:15.000000000 
+0200
@@ -52,8 +52,6 @@
 
 RDFExtract::RDFExtract(const string &rdfDocument, bool useUTF8)
 {
-   RDF_Parser parser;
-
    hasError = false;
    this->useUTF8 = useUTF8;
 
@@ -77,7 +75,7 @@
 
 RDFExtract::~RDFExtract(void)
 {
-
+   RDF_ParserFree (parser);
 }
 
 void RDFExtract::StatementHandler(RDF_SubjectType subject_type,
diff -Naur libmusicbrainz-2.1.2/lib/rdfextract.h 
libmusicbrainz-2.1.2.mod/lib/rdfextract.h
--- libmusicbrainz-2.1.2/lib/rdfextract.h       2004-10-12 09:28:44.000000000 
+0200
+++ libmusicbrainz-2.1.2.mod/lib/rdfextract.h   2006-08-16 03:59:04.000000000 
+0200
@@ -70,6 +70,7 @@
 
     private:
 
+        RDF_Parser parser;
         vector<RDFStatement>  triples;
         string                error, empty, retValue, count;
         bool                  useUTF8, hasError;

Attachment: signature.asc
Description: Digital signature

Reply via email to