Remember the allocated string to free it.

diff --git a/loader/module.c b/loader/module.c
index 3ddb2f0..eef1345 100644
--- a/loader/module.c
+++ b/loader/module.c
@@ -722,7 +722,7 @@
     DOS_FULL_NAME full_name;
     const char *unixfilename = filename;
     const char *argv[256], **argptr;
-    char *p = NULL;
+    char *cmdline = NULL;
     BOOL iconic = FALSE;
 
     /* Get Unix file name and iconic flag */
@@ -737,7 +737,8 @@
     argptr = argv;
     if ( !useWine )
     {
-        p = strdup(lpCmdLine);
+        char *p;
+        p = cmdline = strdup(lpCmdLine);
         if (strchr(filename, '/') || strchr(filename, ':') || strchr(filename, '\\'))
         {
             if ( DOSFS_GetFullName( filename, TRUE, &full_name ) )
@@ -782,7 +783,7 @@
     memset( lpProcessInfo, '\0', sizeof( *lpProcessInfo ) );
     lpProcessInfo->hProcess = INVALID_HANDLE_VALUE;
     lpProcessInfo->hThread  = INVALID_HANDLE_VALUE;
-    if (p) free(p);
+    if (cmdline) free(cmdline);
 
     SetLastError( ERROR_SUCCESS );
     return TRUE;