mirror of
https://github.com/kennethreitz-archive/pyinstaller.git
synced 2026-06-05 23:50:17 +00:00
Use setenv() instead of putenv(). This fixes a nasty segfault on Mac OSX
because the memory used in the call to putenv() were not being saved. git-svn-id: http://svn.pyinstaller.org/trunk@690 8dd32b29-ccff-0310-8a9a-9233e24343b1
This commit is contained in:
+3
-9
@@ -42,16 +42,13 @@ void exportWorkpath(char *workpath, char *envvar_name)
|
||||
char envvar[_MAX_PATH * 4 + 12];
|
||||
char *old_envvar;
|
||||
|
||||
strcpy(envvar, envvar_name);
|
||||
strcat(envvar, "=");
|
||||
strcat(envvar, workpath);
|
||||
envvar[strlen(envvar)-1] = '\0';
|
||||
strcpy(envvar, workpath);
|
||||
old_envvar = getenv(envvar_name);
|
||||
if (old_envvar) {
|
||||
strcat(envvar, ":");
|
||||
strcat(envvar, old_envvar);
|
||||
}
|
||||
putenv(envvar);
|
||||
setenv(envvar_name, envvar, 1);
|
||||
VS("%s\n", envvar);
|
||||
}
|
||||
|
||||
@@ -59,7 +56,6 @@ int main(int argc, char* argv[])
|
||||
{
|
||||
char thisfile[_MAX_PATH];
|
||||
char homepath[_MAX_PATH];
|
||||
char magic_envvar[_MAX_PATH + 12];
|
||||
char archivefile[_MAX_PATH + 5];
|
||||
TOC *ptoc = NULL;
|
||||
int rc = 0;
|
||||
@@ -117,9 +113,7 @@ int main(int argc, char* argv[])
|
||||
|
||||
VS("Executing self as child with ");
|
||||
/* run the "child" process, then clean up */
|
||||
strcpy(magic_envvar, "_MEIPASS2=");
|
||||
strcat(magic_envvar, workpath);
|
||||
putenv(magic_envvar);
|
||||
setenv("_MEIPASS2", workpath, 1);
|
||||
|
||||
/* add workpath to LD_LIBRARY_PATH */
|
||||
exportWorkpath(workpath, "LD_LIBRARY_PATH");
|
||||
|
||||
Reference in New Issue
Block a user