aboutsummaryrefslogtreecommitdiff
path: root/libwinmain/winmain.c
diff options
context:
space:
mode:
Diffstat (limited to 'libwinmain/winmain.c')
-rw-r--r--libwinmain/winmain.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/libwinmain/winmain.c b/libwinmain/winmain.c
index 126c19da4..4e5886397 100644
--- a/libwinmain/winmain.c
+++ b/libwinmain/winmain.c
@@ -74,6 +74,7 @@ int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdL
char *pProgramName;
char **penv;
int Ret;
+ LPTCH pEnvStrings;
hInstance=hInstance;
nCmdShow=nCmdShow;
@@ -132,20 +133,22 @@ int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdL
}
{
- LPTCH pEnvStrings=GetEnvironmentStrings();
+ LPTCH pTmp=GetEnvironmentStrings();
int NrEnv=0;
+ pEnvStrings=pTmp;
penv=malloc(sizeof(*penv));
- while (*pEnvStrings)
+ while (*pTmp)
{
penv=realloc(penv,(NrEnv+2)*sizeof(*penv));
- penv[NrEnv++]=pEnvStrings;
- while (*pEnvStrings) pEnvStrings++;
- pEnvStrings++;
+ penv[NrEnv++]=pTmp;
+ while (*pTmp) pTmp++;
+ pTmp++;
}
penv[NrEnv]=NULL;
}
Ret = main(argc,argv,penv);
free(penv);
+ FreeEnvironmentStrings(pEnvStrings);
return Ret;
}