diff --git a/ProcessUNIX.c b/ProcessUNIX.c index c9f6315ef79d10e348df6c6c0a8273b90b849403..835173c3b7c42335fac7ce42713cee4839d7f837 100644 --- a/ProcessUNIX.c +++ b/ProcessUNIX.c @@ -1044,20 +1044,21 @@ static int kwsysProcessInitialize(kwsysProcess* cp) memset(cp->CommandExitCodes, 0, sizeof(int)*cp->NumberOfCommands); /* Allocate memory to save the real working directory. */ - { + if ( cp->WorkingDirectory ) + { #if defined(MAXPATHLEN) - cp->RealWorkingDirectoryLength = MAXPATHLEN; + cp->RealWorkingDirectoryLength = MAXPATHLEN; #elif defined(PATH_MAX) - cp->RealWorkingDirectoryLength = PATH_MAX; + cp->RealWorkingDirectoryLength = PATH_MAX; #else - cp->RealWorkingDirectoryLength = 4096; + cp->RealWorkingDirectoryLength = 4096; #endif - cp->RealWorkingDirectory = malloc(cp->RealWorkingDirectoryLength); - if(!cp->RealWorkingDirectory) - { - return 0; + cp->RealWorkingDirectory = malloc(cp->RealWorkingDirectoryLength); + if(!cp->RealWorkingDirectory) + { + return 0; + } } - } return 1; }