Mark ab/7061308 as merged in stage.

Bug: 180401296
Merged-In: I61ee2b53635aa76b4f47225eb33db0b6b1cdf6ae
Change-Id: I5d933586f12c74ed9f8c5e43a74b1242c54be8c6
diff --git a/Android.bp b/Android.bp
index c487bba..af7b348 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,3 +1,53 @@
+// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
+//     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
+//     DEPENDING ON IT IN YOUR PROJECT. ***
+package {
+    default_applicable_licenses: ["external_flac_license"],
+}
+
+// Added automatically by a large-scale-change that took the approach of
+// 'apply every license found to every target'. While this makes sure we respect
+// every license restriction, it may not be entirely correct.
+//
+// e.g. GPL in an MIT project might only apply to the contrib/ directory.
+//
+// Please consider splitting the single license below into multiple licenses,
+// taking care not to lose any license_kind information, and overriding the
+// default license using the 'licenses: [...]' property on targets as needed.
+//
+// For unused files, consider creating a 'fileGroup' with "//visibility:private"
+// to attach the license to, and including a comment whether the files may be
+// used in the current project.
+//
+// large-scale-change included anything that looked like it might be a license
+// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
+//
+// Please consider removing redundant or irrelevant files from 'license_text:'.
+// See: http://go/android-license-faq
+license {
+    name: "external_flac_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-Apache-2.0",
+        "SPDX-license-identifier-BSD",
+        "SPDX-license-identifier-GFDL", // by exception only
+        "SPDX-license-identifier-GPL",
+        "SPDX-license-identifier-GPL-2.0",
+        "SPDX-license-identifier-LGPL",
+        "SPDX-license-identifier-LGPL-2.1",
+        "SPDX-license-identifier-LGPL-3.0",
+        "SPDX-license-identifier-MIT",
+        "legacy_unencumbered",
+    ],
+    license_text: [
+        "COPYING.FDL",
+        "COPYING.GPL",
+        "COPYING.LGPL",
+        "COPYING.Xiph",
+        "NOTICE",
+    ],
+}
+
 cc_library_headers {
     name: "libFLAC-config",
     export_include_dirs: ["."],
diff --git a/METADATA b/METADATA
index a49ccd2..b760b2b 100644
--- a/METADATA
+++ b/METADATA
@@ -1,3 +1,6 @@
+# *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
+#     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
+#     DEPENDING ON IT IN YOUR PROJECT. ***
 name: "flac"
 description: "Android fork of the flac library."
 third_party {
@@ -5,11 +8,15 @@
     type: GIT
     value: "https://github.com/xiph/flac.git"
   }
-  version: "ce6dd6b5732e319ef60716d9cc9af6a836a4011a"
-  license_type: RESTRICTED
+  version: "bfd4f13f3eb1f4d4f9f723e343f63eceedb267ba"
+  # Would be RESTRICTED save for GFDL in:
+  #   README
+  #   COPYING.FDL
+  #   doc/html/flac.css
+  license_type: BY_EXCEPTION_ONLY
   last_upgrade_date {
     year: 2020
-    month: 9
-    day: 3
+    month: 12
+    day: 17
   }
 }
diff --git a/fuzzer/Android.bp b/fuzzer/Android.bp
index a7228c5..d813920 100644
--- a/fuzzer/Android.bp
+++ b/fuzzer/Android.bp
@@ -18,6 +18,15 @@
  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
  */
 
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "external_flac_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-Apache-2.0
+    default_applicable_licenses: ["external_flac_license"],
+}
+
 cc_fuzz {
     name: "flac_dec_fuzzer",
     host_supported: true,
diff --git a/oss-fuzz/fuzzing/datasource/datasource.hpp b/oss-fuzz/fuzzing/datasource/datasource.hpp
index e0699d3..09fa8db 100644
--- a/oss-fuzz/fuzzing/datasource/datasource.hpp
+++ b/oss-fuzz/fuzzing/datasource/datasource.hpp
@@ -116,7 +116,7 @@
         size_t left;
         std::vector<uint8_t> get(const size_t min, const size_t max, const uint64_t id = 0) override;
 
-		// Make copy constructor and assignment opertator private.
+		// Make copy constructor and assignment operator private.
         Datasource(const Datasource &) : data(0), size(0), idx(0), left(0) {}
         Datasource& operator=(const Datasource &) { return *this; }
     public:
diff --git a/src/libFLAC/Android.bp b/src/libFLAC/Android.bp
index 6bb166c..3d32da2 100644
--- a/src/libFLAC/Android.bp
+++ b/src/libFLAC/Android.bp
@@ -1,3 +1,13 @@
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "external_flac_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-BSD
+    //   legacy_unencumbered
+    default_applicable_licenses: ["external_flac_license"],
+}
+
 cc_library_static {
     name: "libFLAC",
     vendor_available: true,
diff --git a/src/libFLAC/libFLAC_blocklist.txt b/src/libFLAC/libFLAC_blocklist.txt
index f08ff29..9b0d7d2 100644
--- a/src/libFLAC/libFLAC_blocklist.txt
+++ b/src/libFLAC/libFLAC_blocklist.txt
@@ -5,6 +5,10 @@
 fun:precompute_partition_info_sums_
 # libFLAC/lpc.c:1030:18: -1932902714 + -1376235516 cannot be represented in type 'int'
 fun:FLAC__lpc_restore_signal
+# libFLAC/fixed.c:390:44: 6 * -358419632 cannot be represented in type 'int'
+# libFLAC/fixed.c:378:27: -1023409921 + -1145670695 cannot be represented in type 'int'
+fun:FLAC__fixed_restore_signal
+fun:FLAC__fixed_compute_residual
 
 src:*/libFLAC/crc.c
 src:*/libFLAC/md5.c