Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f8af02ff authored by Tom Cherry's avatar Tom Cherry Committed by Gerrit Code Review
Browse files

Merge "installd create_data_user_ce_path uses dir instead of symlink"

parents 1a1d3479 75d4e57d
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -170,18 +170,19 @@ std::string create_data_app_path(const char* volume_uuid) {

/**
 * Create the path name for user data for a certain userid.
 * Keep same implementation as vold to minimize path walking overhead
 */
std::string create_data_user_ce_path(const char* volume_uuid, userid_t userid) {
    std::string data(create_data_path(volume_uuid));
    if (volume_uuid == nullptr) {
        if (userid == 0) {
            return StringPrintf("%s/data", data.c_str());
        } else {
            return StringPrintf("%s/user/%u", data.c_str(), userid);
    if (volume_uuid == nullptr && userid == 0) {
        std::string legacy = StringPrintf("%s/data", data.c_str());
        struct stat sb;
        if (lstat(legacy.c_str(), &sb) == 0 && S_ISDIR(sb.st_mode)) {
            /* /data/data is dir, return /data/data for legacy system */
            return legacy;
        }
    } else {
        return StringPrintf("%s/user/%u", data.c_str(), userid);
    }
    return StringPrintf("%s/user/%u", data.c_str(), userid);
}

/**