Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Reserve space on disk using fallocate
There were crashes when android failed to extract zip archives due to out of free space on disk, with stacks like: #00 pc 00000000000156b0 /system/lib64/libc.so (memcpy+176) #01 pc 000000000002e5b8 /system/lib64/libandroidfw.so aosp-mirror#2 pc 000000000002f488 /system/lib64/libandroidfw.so (ExtractToMemory+328) aosp-mirror#3 pc 000000000002f5c8 /system/lib64/libandroidfw.so (ExtractEntryToFile+268) aosp-mirror#4 pc 00000000000287d8 /system/lib64/libandroidfw.so (android::ZipFileRO::\ uncompressEntry(void*, int) const+12) Space for the file is now allocated using fallocate rather than ftruncate, since ftruncate dont actually reserve space on disk. When writes to the mmaped pointer fails to be realized due to out of space SIGBUS is the result. With this change we make sure that there is space available before mmaping the pointer. Change-Id: Ic5e8c33dbe729edb57919dacff73811b34cc2dc2
- Loading branch information