Re: [PATCH 1/6] run_external_diff: use an argv_array for the command line
- From
Jeff King <peff@peff.net>
- Date
- Apr 20, 2014, 01:35 UTC
- Message-ID
- <20140420013500.GB10531@sigill.intra.peff.net>
- In-Reply-To
- <CAA6TxYu=AX_RWQq4gr7cv6ZppPerRw30NY_Wbi1r8qEBma7Ctg@mail.gmail.com>
On Sun, Apr 20, 2014 at 02:09:49AM +0400, Max L wrote:
Show 5 quoted lines
> One more note: at this moment the problem is slightly deeper. This > array is next passed to the execvp function, which now falls with > EFAULT on two my machines (both faced this problem after upgrading to > ubuntu 14.04, everything 'worked' fine before, looks like now execvp > checks input more strictly). This leads to non-working 'git difftool'.
Interesting. We're overwriting whatever is after spawn_arg on the stack, so I'd expect the fork/exec to work, but the function to complain while popping the stack frame (though I couldn't get it to do so). I wonder if some kind of stack protection is kicking in, and the NULL doesn't get written or something. Either way, we should definitely address it.
-Peff