From b5219d2d118a06b3c7fbb0857c7c5b31d15c09a2 Mon Sep 17 00:00:00 2001 From: Jesse Miller Date: Fri, 17 Aug 2018 13:18:51 -0500 Subject: [PATCH] Set SHELL environment variable. * Set the SHELL environment variable to the user's configured shell. --- backend/wslbridge-backend.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/backend/wslbridge-backend.cc b/backend/wslbridge-backend.cc index 9c3cbfc..8f3225b 100644 --- a/backend/wslbridge-backend.cc +++ b/backend/wslbridge-backend.cc @@ -572,6 +572,7 @@ int main(int argc, char *argv[]) { } if (childParams.argv.empty()) { const char *shell = "/bin/sh"; + char *shellEnv; struct passwd *pw = getpwuid(getuid()); if (pw == nullptr) { fatalPerror("error: getpwuid failed"); @@ -580,6 +581,10 @@ int main(int argc, char *argv[]) { } else { shell = pw->pw_shell; } + if (asprintf(&shellEnv, "SHELL=%s", shell) == -1) { + fatal("error: unable to set shellEnv\n"); + } + childParams.env.push_back(shellEnv); childParams.argv.push_back(strdup(shell)); } // XXX: Replace char* args/envstrings with std::string?