diff --git a/fs_mgr/fs_mgr_fstab.cpp b/fs_mgr/fs_mgr_fstab.cpp index 9b7405a3d..72a65d264 100644 --- a/fs_mgr/fs_mgr_fstab.cpp +++ b/fs_mgr/fs_mgr_fstab.cpp @@ -33,6 +33,8 @@ #include "fs_mgr_priv.h" +using android::base::StartsWith; + const std::string kDefaultAndroidDtDir("/proc/device-tree/firmware/android"); struct fs_mgr_flag_values { @@ -439,6 +441,10 @@ static std::string read_fstab_from_dt() { LERROR << "dt_fstab: Failed to find device for partition " << dp->d_name; return {}; } + if (!StartsWith(value, "/dev")) { + LERROR << "dt_fstab: Invalid device node for partition " << dp->d_name; + return {}; + } fstab_entry.push_back(value); std::string mount_point;