Merge "Fix crash during check for TWRP app" into android-7.1

This commit is contained in:
Dees Troy
2017-02-08 04:23:49 +01:00
committed by Gerrit Code Review
+10 -10
View File
@@ -1910,21 +1910,21 @@ int GUIAction::checkforapp(std::string arg __unused)
}
}
if (PartitionManager.Mount_By_Path("/data", false)) {
string parent_path = "/data/app";
DIR *d = opendir("/data/app");
struct dirent *p;
size_t len = strlen("me.twrp.twrpapp-");
while ((p = readdir(d))) {
if (!strcmp(p->d_name, ".") || !strcmp(p->d_name, ".."))
continue;
if (p->d_type == DT_DIR && strlen(p->d_name) >= len && strncmp(p->d_name, "me.twrp.twrpapp-", len) == 0) {
LOGINFO("App found at %s/%s\n", parent_path.c_str(), p->d_name);
const char parent_path[] = "/data/app";
const char app_prefix[] = "me.twrp.twrpapp-";
DIR *d = opendir(parent_path);
if (d) {
struct dirent *p;
while ((p = readdir(d))) {
if (p->d_type != DT_DIR || strlen(p->d_name) < strlen(app_prefix) || strncmp(p->d_name, app_prefix, strlen(app_prefix)))
continue;
closedir(d);
LOGINFO("App found at '%s/%s'\n", parent_path, p->d_name);
DataManager::SetValue("tw_app_install_status", 2); // 0 = no status, 1 = not installed, 2 = already installed
goto exit;
}
closedir(d);
}
closedir(d);
}
} else
simulate_progress_bar();