[arch-commits] Commit in android-tools/trunk (PKGBUILD fix_sparse_img.patch)
Anatol Pomozov
anatolik at archlinux.org
Wed Sep 18 17:36:39 UTC 2019
Date: Wednesday, September 18, 2019 @ 17:36:39
Author: anatolik
Revision: 511081
upgpkg: android-tools 29.0.3-2
FS#63370: fix a crash with flashing sparse images
Added:
android-tools/trunk/fix_sparse_img.patch
Modified:
android-tools/trunk/PKGBUILD
----------------------+
PKGBUILD | 5 ++++-
fix_sparse_img.patch | 38 ++++++++++++++++++++++++++++++++++++++
2 files changed, 42 insertions(+), 1 deletion(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2019-09-18 17:35:28 UTC (rev 511080)
+++ PKGBUILD 2019-09-18 17:36:39 UTC (rev 511081)
@@ -4,7 +4,7 @@
pkgname=android-tools
pkgver=29.0.3
-pkgrel=1
+pkgrel=2
tag=platform-tools-$pkgver
pkgdesc='Android platform tools'
arch=(x86_64)
@@ -26,6 +26,7 @@
git+https://boringssl.googlesource.com/boringssl#commit=$_boringssl_commit
generate_build.rb
fix_build_core.patch
+ fix_sparse_img.patch
bash_completion.fastboot)
# Bash completion file was taken from https://github.com/mbrubeck/android-completion
sha1sums=('SKIP'
@@ -38,6 +39,7 @@
'SKIP'
'afca7974ad8658e52fd028ead12ad0a959d63273'
'e7f02cd6529dad54b4bdfd35e34b2cb9cb70cdd4'
+ '2b57a4cf8012473c1a4fc6adae16573756272b02'
'7004dbd0c193668827174880de6f8434de8ceaee')
prepare() {
@@ -45,6 +47,7 @@
cd "$srcdir"/core
patch -p1 < ../fix_build_core.patch
+ patch -p1 < ../fix_sparse_img.patch # FS#63370
cd "$srcdir"/avb
sed -i 's|/usr/bin/env python$|/usr/bin/env python2|g' avbtool
Added: fix_sparse_img.patch
===================================================================
--- fix_sparse_img.patch (rev 0)
+++ fix_sparse_img.patch 2019-09-18 17:36:39 UTC (rev 511081)
@@ -0,0 +1,38 @@
+commit fbb9535aaea5ae4011f3c3edf4c00b27452f57ec
+Author: Tom Cherry <tomcherry at google.com>
+Date: Tue Sep 17 13:34:04 2019 -0700
+
+ fastboot: don't use sparse_file_import_auto() in load_buf_fd()
+
+ load_buf_fd() attempts to find the size of the file that it is about
+ to load by first calling sparse_file_import_auto() then using
+ sparse_file_len() upon success or falling back to the file size on the
+ filesystem on failure.
+
+ This is problematic however as sparse_file_import_auto() creates a
+ sparse_file out of the normal file, but does not resparse it, so an
+ assertion fails during the sparse_file_len() call.
+
+ This is fixed by using sparse_file_import() instead. This will fail
+ in the case that the file is not sparse and the call to
+ sparse_file_len() will be properly skipped.
+
+ Bug: 140538105
+ Test: flash blueline factory image with assertions enabled in
+ libsparse/sparse.cpp
+
+ Change-Id: I0283be33563a3301ce5b09bde41105a20f91086c
+
+diff --git a/fastboot/fastboot.cpp b/fastboot/fastboot.cpp
+index 4737ae4d66..a7fc628c43 100644
+--- a/fastboot/fastboot.cpp
++++ b/fastboot/fastboot.cpp
+@@ -874,7 +874,7 @@ static bool load_buf_fd(int fd, struct fastboot_buffer* buf) {
+ return false;
+ }
+
+- if (sparse_file* s = sparse_file_import_auto(fd, false, false)) {
++ if (sparse_file* s = sparse_file_import(fd, false, false)) {
+ buf->image_size = sparse_file_len(s, false, false);
+ sparse_file_destroy(s);
+ } else {
More information about the arch-commits
mailing list