Patch for run-1.3.0-1 core dump
Max Polk
maxpolk@gmail.com
Thu Feb 20 01:18:00 GMT 2014
On 2/18/2014 4:16 AM, Corinna Vinschen wrote:
> On Feb 17 17:25, Jon TURNEY wrote:
>>> ...
>>> I went to all the trouble of investigating this, discovering that
>>> run2_freeargv() is double-freeing the last element in newargv because the NULL
>>> terminator isn't moved when the arguments are shifted down over newargv[0],
>>> and writing a patch, before I noticed that we already had one :-(
>>>
>>> --- origsrc/run-1.3.0/src/run.c 2013-07-24 16:26:39.000000000 +0100
>>> +++ src/run-1.3.0/src/run.c 2014-02-17 17:08:49.125000000 +0000
>>> @@ -254,6 +254,7 @@ realMain(int argc, char* argv[])
>>> free (newargv[0]);
>>> for (newargc = 1; newargc < argc; newargc++)
>>> newargv[newargc-1] = newargv[newargc];
>>> + newargv[argc-1] = 0;
>>> newargc = argc - 1;
>>>
>>> /* update execname */
>> There's still something wrong. I build run with this patch locally,
>> and it seems to fix the issue at first sight. However, after the
>> child process of run exits, run throws an exception in free(), and
>> the stack looks broken (on 64 bit). It seems there is a double free
>> or a free of an entirely unrelated address.
> Scratch that. I managed to fat-finger a one-line patch. Sorry.
>
> Corinna
Did my earlier patch get included? I haven't seen a "run" new version yet.
http://www.cygwin.com/ml/cygwin/2013-12/msg00006.html
My patch was the one that properly quote arguments. Maybe let's start
with that before putting new stuff underneath it. From Chuck: "I'll
roll a new update fairly soon."
http://www.cygwin.com/ml/cygwin/2013-12/msg00045.html
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list