$NetBSD: patch-CVE-2018-11439,v 1.1 2019/07/18 09:36:37 nia Exp $

Fix CVE-2018-11439 - OOB read when loading invalid ogg flac file.

Upstream commit:
https://github.com/taglib/taglib/commit/2c4ae870ec086f2ddd21a47861a3709c36faac45

--- taglib/ogg/flac/oggflacfile.cpp.orig	2016-10-24 03:03:23.000000000 +0000
+++ taglib/ogg/flac/oggflacfile.cpp
@@ -216,11 +216,21 @@ void Ogg::FLAC::File::scan()
 
   if(!metadataHeader.startsWith("fLaC"))  {
     // FLAC 1.1.2+
+    // See https://xiph.org/flac/ogg_mapping.html for the header specification.
+    if(metadataHeader.size() < 13)
+      return;
+
+    if(metadataHeader[0] != 0x7f)
+      return;
+
     if(metadataHeader.mid(1, 4) != "FLAC")
       return;
 
-    if(metadataHeader[5] != 1)
-      return; // not version 1
+    if(metadataHeader[5] != 1 && metadataHeader[6] != 0)
+      return; // not version 1.0
+
+    if(metadataHeader.mid(9, 4) != "fLaC")
+      return;
 
     metadataHeader = metadataHeader.mid(13);
   }
