diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2022-06-10 00:50:35 +0200 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2022-06-10 00:50:35 +0200 |
commit | e50efc781aee5a94cf962a91691567532c03c2b9 (patch) | |
tree | 42e88b815dec3ac8a54653d56ed270352b979008 | |
parent | Merge "update_verifier: Verify blocks" (diff) | |
parent | Fix logical bugs around access() POSIX call (diff) | |
download | android_bootable_recovery-e50efc781aee5a94cf962a91691567532c03c2b9.tar android_bootable_recovery-e50efc781aee5a94cf962a91691567532c03c2b9.tar.gz android_bootable_recovery-e50efc781aee5a94cf962a91691567532c03c2b9.tar.bz2 android_bootable_recovery-e50efc781aee5a94cf962a91691567532c03c2b9.tar.lz android_bootable_recovery-e50efc781aee5a94cf962a91691567532c03c2b9.tar.xz android_bootable_recovery-e50efc781aee5a94cf962a91691567532c03c2b9.tar.zst android_bootable_recovery-e50efc781aee5a94cf962a91691567532c03c2b9.zip |
-rw-r--r-- | recovery-persist.cpp | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/recovery-persist.cpp b/recovery-persist.cpp index ad101ede2..55699b24e 100644 --- a/recovery-persist.cpp +++ b/recovery-persist.cpp @@ -77,6 +77,10 @@ static void copy_file(const char* source, const char* destination) { } } +static bool file_exists(const char* filename) { + return access(filename, R_OK) == 0; +} + static bool rotated = false; ssize_t logsave( @@ -141,7 +145,7 @@ int main(int argc, char **argv) { if (has_cache) { // Collects and reports the non-a/b update metrics from last_install; and removes the file // to avoid duplicate report. - if (access(LAST_INSTALL_FILE_IN_CACHE, F_OK) && unlink(LAST_INSTALL_FILE_IN_CACHE) == -1) { + if (file_exists(LAST_INSTALL_FILE_IN_CACHE) && unlink(LAST_INSTALL_FILE_IN_CACHE) == -1) { PLOG(ERROR) << "Failed to unlink " << LAST_INSTALL_FILE_IN_CACHE; } @@ -152,9 +156,9 @@ int main(int argc, char **argv) { } } - /* Is there something in pmsg? */ - if (access(LAST_PMSG_FILE, R_OK)) { - return 0; + /* Is there something in pmsg? If not, no need to proceed. */ + if (!file_exists(LAST_PMSG_FILE)) { + return 0; } // Take last pmsg file contents and send it off to the logsave @@ -164,18 +168,18 @@ int main(int argc, char **argv) { // For those device without /cache, the last_install file has been copied to // /data/misc/recovery from pmsg. Looks for the sideload history only. if (!has_cache) { - if (access(LAST_INSTALL_FILE, F_OK) && unlink(LAST_INSTALL_FILE) == -1) { + if (file_exists(LAST_INSTALL_FILE) && unlink(LAST_INSTALL_FILE) == -1) { PLOG(ERROR) << "Failed to unlink " << LAST_INSTALL_FILE; } } /* Is there a last console log too? */ if (rotated) { - if (!access(LAST_CONSOLE_FILE, R_OK)) { - copy_file(LAST_CONSOLE_FILE, LAST_KMSG_FILE); - } else if (!access(ALT_LAST_CONSOLE_FILE, R_OK)) { - copy_file(ALT_LAST_CONSOLE_FILE, LAST_KMSG_FILE); - } + if (file_exists(LAST_CONSOLE_FILE)) { + copy_file(LAST_CONSOLE_FILE, LAST_KMSG_FILE); + } else if (file_exists(ALT_LAST_CONSOLE_FILE)) { + copy_file(ALT_LAST_CONSOLE_FILE, LAST_KMSG_FILE); + } } return 0; |