sessions menu (etc) can inherit listening sockets, and that this sometimes
causes trouble. Can't reproduce any problems myself, but let's only allow
inheritance when absolutely necessary -- Duplicate Session -- in which
case there's already going to be trouble with two processes trying to
listen on the same port.
git-svn-id: svn://svn.tartarus.org/sgt/putty@5468
cda61777-01e9-0310-a592-
d414129be87e
char b[2048];
char c[30], *cl;
int freecl = FALSE;
char b[2048];
char c[30], *cl;
int freecl = FALSE;
STARTUPINFO si;
PROCESS_INFORMATION pi;
HANDLE filemap = NULL;
STARTUPINFO si;
PROCESS_INFORMATION pi;
HANDLE filemap = NULL;
+ inherit_handles = TRUE;
sprintf(c, "putty &%p", filemap);
cl = c;
} else if (wParam == IDM_SAVEDSESS) {
sprintf(c, "putty &%p", filemap);
cl = c;
} else if (wParam == IDM_SAVEDSESS) {
char *session = sesslist.sessions[sessno];
/* XXX spaces? quotes? "-load"? */
cl = dupprintf("putty @%s", session);
char *session = sesslist.sessions[sessno];
/* XXX spaces? quotes? "-load"? */
cl = dupprintf("putty @%s", session);
+ inherit_handles = FALSE;
freecl = TRUE;
} else
break;
freecl = TRUE;
} else
break;
+ } else /* IDM_NEWSESS */ {
+ inherit_handles = FALSE;
+ }
GetModuleFileName(NULL, b, sizeof(b) - 1);
si.cb = sizeof(si);
GetModuleFileName(NULL, b, sizeof(b) - 1);
si.cb = sizeof(si);
si.dwFlags = 0;
si.cbReserved2 = 0;
si.lpReserved2 = NULL;
si.dwFlags = 0;
si.cbReserved2 = 0;
si.lpReserved2 = NULL;
- CreateProcess(b, cl, NULL, NULL, TRUE,
+ CreateProcess(b, cl, NULL, NULL, inherit_handles,
NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi);
if (filemap)
NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi);
if (filemap)