]> granicus.if.org Git - taglib/commitdiff
Fix memory leaks when saving Ogg files.
authorTsuda Kageyu <tsuda.kageyu@gmail.com>
Sat, 6 Feb 2016 19:46:40 +0000 (04:46 +0900)
committerTsuda Kageyu <tsuda.kageyu@gmail.com>
Sat, 6 Feb 2016 19:46:40 +0000 (04:46 +0900)
taglib/ogg/oggfile.cpp

index 2a922981f41b6f938c243478b9aecf1ba6c5de8b..6520cc3202de0388032b1de79832e284405dc322 100644 (file)
@@ -262,12 +262,13 @@ void Ogg::File::writePacket(unsigned int i, const ByteVector &packet)
   // TODO: This pagination method isn't accurate for what's being done here.
   // This should account for real possibilities like non-aligned packets and such.
 
-  const List<Page *> pages = Page::paginate(packets,
-                                            Page::SinglePagePerGroup,
-                                            firstPage->header()->streamSerialNumber(),
-                                            firstPage->pageSequenceNumber(),
-                                            firstPage->header()->firstPacketContinued(),
-                                            lastPage->header()->lastPacketCompleted());
+  List<Page *> pages = Page::paginate(packets,
+                                      Page::SinglePagePerGroup,
+                                      firstPage->header()->streamSerialNumber(),
+                                      firstPage->pageSequenceNumber(),
+                                      firstPage->header()->firstPacketContinued(),
+                                      lastPage->header()->lastPacketCompleted());
+  pages.setAutoDelete(true);
 
   // Write the pages.