summaryrefslogtreecommitdiff
path: root/fuse_sideload/fuse_sideload.cpp
diff options
context:
space:
mode:
authorxunchang <xunchang@google.com>2019-03-17 16:45:12 -0700
committerxunchang <xunchang@google.com>2019-03-19 11:11:58 -0700
commitea2912f187cec8d426cfc2ca715b9a503355fa37 (patch)
tree4298ddcf0b5ce74a15a43699adbcc2d27bfb9084 /fuse_sideload/fuse_sideload.cpp
parent698dc08561643025aec34804fda9f5c551d46305 (diff)
Create a FuseDataProvider base class
The fuse data provider for adb/sdcard shares common code and structures. This cl creates a FuseDataProvider base class and provides implementations for adb and sdcard. In the follow cls, we can kill the provider_vtab struct; and also add another implementation to parse a block map file and provides data. Test: unit tests pass, sideload a package, apply a package from sdcard Change-Id: If8311666a52a2e3c0fbae0ee9688fa6d01e4ad09
Diffstat (limited to 'fuse_sideload/fuse_sideload.cpp')
-rw-r--r--fuse_sideload/fuse_sideload.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/fuse_sideload/fuse_sideload.cpp b/fuse_sideload/fuse_sideload.cpp
index 1c7e98f0..e812486f 100644
--- a/fuse_sideload/fuse_sideload.cpp
+++ b/fuse_sideload/fuse_sideload.cpp
@@ -244,8 +244,9 @@ static int fetch_block(fuse_data* fd, uint32_t block) {
memset(fd->block_data + fetch_size, 0, fd->block_size - fetch_size);
}
- int result = fd->vtab.read_block(block, fd->block_data, fetch_size);
- if (result < 0) return result;
+ if (!fd->vtab.read_block(block, fd->block_data, fetch_size)) {
+ return -EIO;
+ }
fd->curr_block = block;