diff --git a/dtool/src/dtoolutil/executionEnvironment.cxx b/dtool/src/dtoolutil/executionEnvironment.cxx index 199ea1fb3a..a0bf90c6f4 100644 --- a/dtool/src/dtoolutil/executionEnvironment.cxx +++ b/dtool/src/dtoolutil/executionEnvironment.cxx @@ -204,8 +204,12 @@ ns_get_environment_variable(const string &var) const { void ExecutionEnvironment:: ns_set_environment_variable(const string &var, const string &value) { _variables[var] = value; - string put = var + "=" + value; - putenv(put.c_str()); + string putstr = var + "=" + value; + + // putenv() requires us to malloc a new C-style string. + char *put = (char *)malloc(putstr.length() + 1); + strcpy(put, putstr.c_str()); + putenv(put); } ////////////////////////////////////////////////////////////////////