summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTianjie Xu <xunchang@google.com>2021-02-17 20:37:52 +0100
committerGerrit Code Review <noreply-gerritcodereview@google.com>2021-02-17 20:37:52 +0100
commitbe54337faba013a4e8fa42218c58a65436a37c8d (patch)
tree69fc35b5055809ab02209c735ee063ef15bc3a71
parentMerge "[LSC] Add LOCAL_LICENSE_KINDS to bootable/recovery" (diff)
parentupdater: Do not null terminate mount_flags_list array (diff)
downloadandroid_bootable_recovery-be54337faba013a4e8fa42218c58a65436a37c8d.tar
android_bootable_recovery-be54337faba013a4e8fa42218c58a65436a37c8d.tar.gz
android_bootable_recovery-be54337faba013a4e8fa42218c58a65436a37c8d.tar.bz2
android_bootable_recovery-be54337faba013a4e8fa42218c58a65436a37c8d.tar.lz
android_bootable_recovery-be54337faba013a4e8fa42218c58a65436a37c8d.tar.xz
android_bootable_recovery-be54337faba013a4e8fa42218c58a65436a37c8d.tar.zst
android_bootable_recovery-be54337faba013a4e8fa42218c58a65436a37c8d.zip
Diffstat (limited to '')
-rw-r--r--updater/updater_runtime.cpp40
1 files changed, 18 insertions, 22 deletions
diff --git a/updater/updater_runtime.cpp b/updater/updater_runtime.cpp
index e93830505..bac078cf9 100644
--- a/updater/updater_runtime.cpp
+++ b/updater/updater_runtime.cpp
@@ -44,29 +44,25 @@ std::string UpdaterRuntime::FindBlockDeviceName(const std::string_view name) con
return std::string(name);
}
-static struct {
- const char* name;
- unsigned flag;
-} mount_flags_list[] = {
- { "noatime", MS_NOATIME },
- { "noexec", MS_NOEXEC },
- { "nosuid", MS_NOSUID },
- { "nodev", MS_NODEV },
- { "nodiratime", MS_NODIRATIME },
- { "ro", MS_RDONLY },
- { "rw", 0 },
- { "remount", MS_REMOUNT },
- { "bind", MS_BIND },
- { "rec", MS_REC },
- { "unbindable", MS_UNBINDABLE },
- { "private", MS_PRIVATE },
- { "slave", MS_SLAVE },
- { "shared", MS_SHARED },
- { "defaults", 0 },
- { 0, 0 },
-};
-
static bool setMountFlag(const std::string& flag, unsigned* mount_flags) {
+ static constexpr std::pair<const char*, unsigned> mount_flags_list[] = {
+ { "noatime", MS_NOATIME },
+ { "noexec", MS_NOEXEC },
+ { "nosuid", MS_NOSUID },
+ { "nodev", MS_NODEV },
+ { "nodiratime", MS_NODIRATIME },
+ { "ro", MS_RDONLY },
+ { "rw", 0 },
+ { "remount", MS_REMOUNT },
+ { "bind", MS_BIND },
+ { "rec", MS_REC },
+ { "unbindable", MS_UNBINDABLE },
+ { "private", MS_PRIVATE },
+ { "slave", MS_SLAVE },
+ { "shared", MS_SHARED },
+ { "defaults", 0 },
+ };
+
for (const auto& [name, value] : mount_flags_list) {
if (flag == name) {
*mount_flags |= value;