> On May 11, 2016, 9:09 a.m., Michael Park wrote:
> > 3rdparty/libprocess/include/process/windows/subprocess.hpp, lines 122-181
> > <https://reviews.apache.org/r/46608/diff/5/?file=1378964#file1378964line122>
> >
> > Follow-up to https://reviews.apache.org/r/46608/#comment195141: Since
> > you say that we don't need to escape quotes, let's change `const
> > vector<string>& argv` to `vector<string> argv` and all of this can be
> > replaced with:
> >
> > ```
> > string program = "\"" + argv[0] + "\"";
> > argv.erase(argv.begin());
> > string args = strings::join(" ", argv);
> > string cmd = strings::join(" ", program, args);
> >
> > BOOL createProcessResult = CreateProcess(
> > NULL,
> > cmd.data(),
> > ...);
> > ```
Talked with Michael and dpravat a bit offline. For the time being, we are going
to expect that `argv` and `path` are correctly quoted when they are passed to
the `subprocess` call. It might not be a permanent solution, but the naive
solution of wrapping `argv[0]` in quotes is not going to cover all the corner
cases. (For example, the path `C:\"Program Files"\foo.exe`.)
Our plan is to (1) just `strings::join(" ", argv)` and pass that as the command
to `::CreateProcess`, (2) leave a `NOTE` on this code explaining that if you
want to pass a binary with a space in it to `subprocess`, you get to quote that
yourself for the time being, and (3) revisit this when we touch the executor,
which will give us the opportunity to figure out how `subprocess` is being
called, which will then help us decide how to handle this correctly, with
minimum complexity -- our goal here is to _not_ reimplement the CLI parser.
- Alex
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/46608/#review132623
-----------------------------------------------------------
On May 10, 2016, 11:44 p.m., Alex Clemmer wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/46608/
> -----------------------------------------------------------
>
> (Updated May 10, 2016, 11:44 p.m.)
>
>
> Review request for mesos, Alex Naparu, Daniel Pravat, Artem Harutyunyan,
> Joris Van Remoortere, Michael Park, M Lawindi, and Yi Sun.
>
>
> Bugs: MESOS-3637
> https://issues.apache.org/jira/browse/MESOS-3637
>
>
> Repository: mesos
>
>
> Description
> -------
>
> Libprocess: Implemented `subprocess_windows.cpp`.
>
>
> Diffs
> -----
>
> 3rdparty/libprocess/include/process/subprocess_base.hpp PRE-CREATION
> 3rdparty/libprocess/include/process/windows/subprocess.hpp PRE-CREATION
> 3rdparty/libprocess/src/io.cpp 83e5f04f246b46880cfc34aa56441046b569b142
> 3rdparty/libprocess/src/subprocess.cpp
> bb0fcbcd0dfa455c8700247c5b4ca0473fd163c3
> 3rdparty/libprocess/src/subprocess_windows.cpp PRE-CREATION
>
> Diff: https://reviews.apache.org/r/46608/diff/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Alex Clemmer
>
>