Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fsmgr: fix integer overflow in fs_mgr
As the EXT4_MAX_BLOCK_SIZE defined as 65536 which reached maxium value of unsigned int. The superblock value maybe larger than 65536. This is found by the Integer Overflow Sanitizer. This patch fixed below boot error when userdata is corrupted: init: processing action (fs) from (/vendor/etc/init/hw/init.freescale.rc:221) init: [libfs_mgr]Invalid ext4 superblock on '/dev/block/by-name/userdata' init: InitFatalReboot: signal 6 init: #00 pc 00000000000af7e8 /system/bin/init (android::init::InitFatalReboot(int)+208) init: #1 pc 00000000000afbd0 /system/bin/init (android::init::InstallRebootSignalHandlers()::$_22::__invoke(int)+32) init: aosp-mirror#2 pc 00000000000006bc [vdso:0000ffff9691b000] (__kernel_rt_sigreturn) init: aosp-mirror#3 pc 000000000004e070 /system/lib64/bootstrap/libc.so (abort+176) init: aosp-mirror#4 pc 000000000003427c /system/lib64/libfs_mgr.so (read_ext4_superblock(std::__1::basic_string<char, std::__1::char_ traits<char>, std::__1::allocator<char> > const&, android::fs_mgr::FstabEntry const&, ext4_super_block*, int*)+1804) Test: boot with corrupted ext4 superblock Change-Id: I58ed723afa9975d0e93f96fad7c55465e68b3edd Signed-off-by: Haoran.Wang <[email protected]> Former-commit-id: 4a48945
- Loading branch information