[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [win-pv-devel] [PATCH 5/6] Launch monitored process without command line
> -----Original Message----- > From: win-pv-devel [mailto:win-pv-devel-bounces@xxxxxxxxxxxxxxxxxxxx] On > Behalf Of owen.smith@xxxxxxxxxx > Sent: 24 July 2017 14:36 > To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx > Cc: Owen Smith <owen.smith@xxxxxxxxxx> > Subject: [win-pv-devel] [PATCH 5/6] Launch monitored process without > command line > > From: Owen Smith <owen.smith@xxxxxxxxxx> > > Changed tty to open named pipe by name, not command line argument > > Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx> Reviewed-by: Paul Durrant <paul.durrant@xxxxxxxxxx> > --- > src/monitor/monitor.c | 31 +++---------------------------- > src/tty/tty.c | 14 ++++++-------- > 2 files changed, 9 insertions(+), 36 deletions(-) > > diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c > index 9ddce52..6e1e85f 100644 > --- a/src/monitor/monitor.c > +++ b/src/monitor/monitor.c > @@ -586,8 +586,6 @@ MonitorThread( > ) > { > PMONITOR_CONTEXT Context = &MonitorContext; > - DWORD CommandLineLength; > - PTCHAR CommandLine; > PROCESS_INFORMATION ProcessInfo; > STARTUPINFO StartupInfo; > BOOL Success; > @@ -599,32 +597,16 @@ MonitorThread( > > Log("====>"); > > - CommandLineLength = (DWORD)(_tcslen(Context->Executable) + > - 2 + > - _tcslen(Context->DevicePath) + > - 2) * sizeof (TCHAR); > - > - CommandLine = calloc(1, CommandLineLength); > - > - if (CommandLine == NULL) > - goto fail1; > - > - (VOID) _sntprintf(CommandLine, > - CommandLineLength - 1, > - TEXT("%s \"%s\""), > - Context->Executable, > - Context->DevicePath); > - > again: > ZeroMemory(&ProcessInfo, sizeof (ProcessInfo)); > ZeroMemory(&StartupInfo, sizeof (StartupInfo)); > StartupInfo.cb = sizeof (StartupInfo); > > - Log("Executing: %s", CommandLine); > + Log("Executing: %s", Context->Executable); > > #pragma warning(suppress:6053) // CommandLine might not be NUL- > terminated > Success = CreateProcess(NULL, > - CommandLine, > + Context->Executable, > NULL, > NULL, > FALSE, > @@ -635,7 +617,7 @@ again: > &StartupInfo, > &ProcessInfo); > if (!Success) > - goto fail2; > + goto fail1; > > Handle[0] = Context->MonitorEvent; > Handle[1] = ProcessInfo.hProcess; > @@ -667,17 +649,10 @@ again: > > //#undef WAIT_OBJECT_1 > > - free(CommandLine); > - > Log("<===="); > > return 0; > > -fail2: > - Log("fail2"); > - > - free(CommandLine); > - > fail1: > Error = GetLastError(); > > diff --git a/src/tty/tty.c b/src/tty/tty.c > index c47634c..94d4f65 100644 > --- a/src/tty/tty.c > +++ b/src/tty/tty.c > @@ -39,6 +39,7 @@ typedef struct _TTY_STREAM { > HANDLE Write; > } TTY_STREAM, *PTTY_STREAM; > > +#define PIPE_NAME TEXT("\\\\.\\pipe\\xencons") > #define MAXIMUM_BUFFER_SIZE 1024 > > typedef struct _TTY_CONTEXT { > @@ -393,18 +394,15 @@ _tmain( > ) > { > PTTY_CONTEXT Context = &TtyContext; > - PTCHAR DeviceName; > SECURITY_ATTRIBUTES Attributes; > HANDLE Handle[3]; > DWORD Index; > BOOL Success; > > - if (argc != 2) > - ExitProcess(1); > - > - DeviceName = argv[1]; > + UNREFERENCED_PARAMETER(argc); > + UNREFERENCED_PARAMETER(argv); > > - Context->Device.Read = CreateFile(DeviceName, > + Context->Device.Read = CreateFile(PIPE_NAME, > GENERIC_READ, > FILE_SHARE_WRITE, > NULL, > @@ -415,7 +413,7 @@ _tmain( > if (Context->Device.Read == INVALID_HANDLE_VALUE) > ExitProcess(1); > > - Context->Device.Write = CreateFile(DeviceName, > + Context->Device.Write = CreateFile(PIPE_NAME, > GENERIC_WRITE, > FILE_SHARE_READ | FILE_SHARE_WRITE, > NULL, > @@ -423,7 +421,7 @@ _tmain( > FILE_ATTRIBUTE_NORMAL, > NULL); > > - if (Context->Device.Read == INVALID_HANDLE_VALUE) > + if (Context->Device.Write == INVALID_HANDLE_VALUE) > ExitProcess(1); > > Success = GetCredentials(); > -- > 2.8.3 > > > _______________________________________________ > win-pv-devel mailing list > win-pv-devel@xxxxxxxxxxxxxxxxxxxx > https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel _______________________________________________ win-pv-devel mailing list win-pv-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |