summaryrefslogtreecommitdiffstats
path: root/fuse_sdcard_provider.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Clean up fuse_sideload and add a testcase.Tao Bao2017-11-041-45/+43
| | | | | | | | | | | | This CL mainly changes: a) moving the interface in struct provider_vtab to std::function; b) code cleanup, such as moving the declaration closer to the uses, using explicit type conversion. Test: recovery_component_test Test: minadbd_test Test: Sideload a package on marlin. Change-Id: Id0e3c70f1ada54a4cd985b54c84438c23ed4687e
* Check an edge case when read(2) returns 0Tianjie Xu2016-09-011-8/+5
| | | | | | | | | | We might end up in an infinite loop if read(2) reached EOF unexpectedly. The problematic code in uncrypt mentioned in the bug has been fixed by switching to libbase ReadFully(). So I grepped through the recovery code and fixed some other occurences of the issue. Bug: 31073201 Change-Id: Ib867029158ba23363b8f85d61c25058a635c5a6b
* recovery: Fork a process for fuse when sideloading from SD card.Tao Bao2016-01-141-63/+11
| | | | | | | | | | | For applying update from SD card, we used to use a thread to serve the file with fuse. Since accessing through fuse involves going from kernel to userspace to kernel, it may run into deadlock (e.g. for mmap_sem) when a page fault occurs. Switch to using a process instead. Bug: 23783099 Bug: 26313124 Change-Id: Iac0f55b1bdb078cadb520cfe1133e70fbb26eadd
* recovery: Switch fuse_* to C++.Tao Bao2015-07-241-0/+140
Change-Id: Id50c3e6febd0ab61f10a654b9b265cf21a2d1701 (cherry picked from commit 71dc365f25676cfb3f62dbb7163697a8c3c5243d)