From bb134b2613aeb4d7d8f9fdfb8d8402158d29d851 Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Wed, 5 Dec 2018 14:33:28 -0800 Subject: uncrypt: Fix the comparison in FindBlockDevice(). Previously it considered a match if the given path (i.e. path to an update package) fully equals to a mount_point. For example, `uncrypt /data block.map` or `uncrypt /vendor block.map` would exit successfully, without producing a block map. Test: `uncrypt /path/to/package.zip block.map` Test: `uncrypt /vendor block.map` fails. Change-Id: Id946ab1c0b158b623013f89463cbb1960141d8b5 --- uncrypt/uncrypt.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'uncrypt') diff --git a/uncrypt/uncrypt.cpp b/uncrypt/uncrypt.cpp index 49d2be3b2..75595ac2c 100644 --- a/uncrypt/uncrypt.cpp +++ b/uncrypt/uncrypt.cpp @@ -174,9 +174,7 @@ static std::string FindBlockDevice(const std::string& path, bool* encryptable, b if (entry.mount_point.empty()) { continue; } - auto len = entry.mount_point.size(); - if (android::base::StartsWith(path, entry.mount_point) && - (path[len] == '/' || path[len] == 0)) { + if (android::base::StartsWith(path, entry.mount_point + "/")) { *encrypted = false; *encryptable = false; if (entry.is_encryptable() || entry.fs_mgr_flags.file_encryption) { -- cgit v1.2.3