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

Commit e03c9887 authored by Josh Gao's avatar Josh Gao
Browse files

adb: handle some edge cases with process environments.

Change-Id: I0c20e58e14ef756a8c45dd5ea85f7301157a3c8e
parent 9b3fd672
Loading
Loading
Loading
Loading
+12 −7
Original line number Diff line number Diff line
@@ -250,14 +250,19 @@ bool Subprocess::ForkAndExec() {
    // Construct the environment for the child before we fork.
    passwd* pw = getpwuid(getuid());
    std::unordered_map<std::string, std::string> env;

    if (environ) {
        char** current = environ;
        while (char* env_cstr = *current++) {
            std::string env_string = env_cstr;
            char* delimiter = strchr(env_string.c_str(), '=');

            // Drop any values that don't contain '='.
            if (delimiter) {
                *delimiter++ = '\0';
                env[env_string.c_str()] = delimiter;
            }
        }
    }

    if (pw != nullptr) {
        // TODO: $HOSTNAME? Normally bash automatically sets that, but mksh doesn't.