diff options
-rw-r--r-- | applypatch/Android.mk | 6 | ||||
-rw-r--r-- | otafault/Android.mk | 4 | ||||
-rw-r--r-- | otafault/config.cpp | 6 | ||||
-rw-r--r-- | otafault/config.h | 20 | ||||
-rw-r--r-- | otafault/ota_io.cpp | 4 | ||||
-rw-r--r-- | otafault/ota_io.h | 3 | ||||
-rw-r--r-- | otafault/test.cpp | 3 | ||||
-rw-r--r-- | roots.cpp | 17 | ||||
-rw-r--r-- | tests/Android.mk | 2 |
9 files changed, 36 insertions, 29 deletions
diff --git a/applypatch/Android.mk b/applypatch/Android.mk index 59aa0ce6c..f5dda2bc4 100644 --- a/applypatch/Android.mk +++ b/applypatch/Android.mk @@ -112,11 +112,13 @@ LOCAL_C_INCLUDES := bootable/recovery LOCAL_STATIC_LIBRARIES := \ libapplypatch_modes \ libapplypatch \ - libbase \ libedify \ libotafault \ - libcrypto \ libbspatch \ + libbase \ + libziparchive \ + liblog \ + libcrypto \ libbz LOCAL_SHARED_LIBRARIES := \ libbase \ diff --git a/otafault/Android.mk b/otafault/Android.mk index 4784d56ef..3e14f77f3 100644 --- a/otafault/Android.mk +++ b/otafault/Android.mk @@ -18,8 +18,6 @@ include $(CLEAR_VARS) otafault_static_libs := \ libziparchive \ - libz \ - libselinux \ libbase \ liblog @@ -35,7 +33,7 @@ LOCAL_MODULE_TAGS := eng LOCAL_MODULE := libotafault LOCAL_C_INCLUDES := bootable/recovery LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) -LOCAL_WHOLE_STATIC_LIBRARIES := $(otafault_static_libs) +LOCAL_STATIC_LIBRARIES := $(otafault_static_libs) include $(BUILD_STATIC_LIBRARY) diff --git a/otafault/config.cpp b/otafault/config.cpp index b94e429c6..c11f77452 100644 --- a/otafault/config.cpp +++ b/otafault/config.cpp @@ -14,16 +14,14 @@ * limitations under the License. */ +#include "config.h" + #include <map> #include <string> -#include <stdio.h> -#include <unistd.h> - #include <android-base/stringprintf.h> #include <ziparchive/zip_archive.h> -#include "config.h" #include "ota_io.h" #define OTAIO_MAX_FNAME_SIZE 128 diff --git a/otafault/config.h b/otafault/config.h index 4adbdd121..cc4bfd2ad 100644 --- a/otafault/config.h +++ b/otafault/config.h @@ -15,13 +15,13 @@ */ /* - * Read configuration files in the OTA package to determine which files, if any, will trigger errors. + * Read configuration files in the OTA package to determine which files, if any, will trigger + * errors. * - * OTA packages can be modified to trigger errors by adding a top-level - * directory called .libotafault, which may optionally contain up to three - * files called READ, WRITE, and FSYNC. Each one of these optional files - * contains the name of a single file on the device disk which will cause - * an IO error on the first call of the appropriate I/O action to that file. + * OTA packages can be modified to trigger errors by adding a top-level directory called + * .libotafault, which may optionally contain up to three files called READ, WRITE, and FSYNC. + * Each one of these optional files contains the name of a single file on the device disk which + * will cause an IO error on the first call of the appropriate I/O action to that file. * * Example: * ota.zip @@ -29,9 +29,9 @@ * .libotafault * WRITE * - * If the contents of the file WRITE were /system/build.prop, the first write - * action to /system/build.prop would fail with EIO. Note that READ and - * FSYNC files are absent, so these actions will not cause an error. + * If the contents of the file WRITE were /system/build.prop, the first write action to + * /system/build.prop would fail with EIO. Note that READ and FSYNC files are absent, so these + * actions will not cause an error. */ #ifndef _UPDATER_OTA_IO_CFG_H_ @@ -39,8 +39,6 @@ #include <string> -#include <stdbool.h> - #include <ziparchive/zip_archive.h> #define OTAIO_BASE_DIR ".libotafault" diff --git a/otafault/ota_io.cpp b/otafault/ota_io.cpp index faae5275d..a82a7ee59 100644 --- a/otafault/ota_io.cpp +++ b/otafault/ota_io.cpp @@ -18,15 +18,17 @@ #include <errno.h> #include <fcntl.h> +#include <stdint.h> #include <stdio.h> #include <sys/stat.h> +#include <sys/types.h> #include <unistd.h> #include <map> -#include <memory> #include <mutex> #include <android-base/thread_annotations.h> + #include "config.h" static std::mutex filename_mutex; diff --git a/otafault/ota_io.h b/otafault/ota_io.h index 9428f1b1f..45e481a62 100644 --- a/otafault/ota_io.h +++ b/otafault/ota_io.h @@ -23,8 +23,9 @@ #ifndef _UPDATER_OTA_IO_H_ #define _UPDATER_OTA_IO_H_ +#include <stddef.h> #include <stdio.h> -#include <sys/stat.h> +#include <sys/stat.h> // mode_t #include <memory> diff --git a/otafault/test.cpp b/otafault/test.cpp index 6514782bf..60c40e099 100644 --- a/otafault/test.cpp +++ b/otafault/test.cpp @@ -14,9 +14,10 @@ * limitations under the License. */ -#include <errno.h> #include <fcntl.h> #include <stdio.h> +#include <sys/stat.h> +#include <sys/types.h> #include <unistd.h> #include "ota_io.h" @@ -18,6 +18,7 @@ #include <ctype.h> #include <fcntl.h> +#include <stdint.h> #include <stdlib.h> #include <sys/mount.h> #include <sys/stat.h> @@ -197,16 +198,22 @@ static int exec_cmd(const std::vector<std::string>& args) { return WEXITSTATUS(status); } -static ssize_t get_file_size(int fd, uint64_t reserve_len) { +static int64_t get_file_size(int fd, uint64_t reserve_len) { struct stat buf; int ret = fstat(fd, &buf); if (ret) return 0; - ssize_t computed_size; + int64_t computed_size; if (S_ISREG(buf.st_mode)) { computed_size = buf.st_size - reserve_len; } else if (S_ISBLK(buf.st_mode)) { - computed_size = get_block_device_size(fd) - reserve_len; + uint64_t block_device_size = get_block_device_size(fd); + if (block_device_size < reserve_len || + block_device_size > std::numeric_limits<int64_t>::max()) { + computed_size = 0; + } else { + computed_size = block_device_size - reserve_len; + } } else { computed_size = 0; } @@ -250,13 +257,13 @@ int format_volume(const char* volume, const char* directory) { close(fd); } - ssize_t length = 0; + int64_t length = 0; if (v->length != 0) { length = v->length; } else if (v->key_loc != nullptr && strcmp(v->key_loc, "footer") == 0) { android::base::unique_fd fd(open(v->blk_device, O_RDONLY)); if (fd == -1) { - PLOG(ERROR) << "get_file_size: failed to open " << v->blk_device; + PLOG(ERROR) << "format_volume: failed to open " << v->blk_device; return -1; } length = get_file_size(fd.get(), CRYPT_FOOTER_OFFSET); diff --git a/tests/Android.mk b/tests/Android.mk index 748d9c87b..31c7de177 100644 --- a/tests/Android.mk +++ b/tests/Android.mk @@ -143,7 +143,6 @@ LOCAL_STATIC_LIBRARIES := \ libdivsufsort \ libdivsufsort64 \ libfs_mgr \ - liblog \ libvintf_recovery \ libvintf \ libtinyxml2 \ @@ -154,6 +153,7 @@ LOCAL_STATIC_LIBRARIES := \ libcrypto \ libbz \ libziparchive \ + liblog \ libutils \ libz \ libbase \ |