This is the mail archive of the
cygwin-developers@cygwin.com
mailing list for the Cygwin project.
Re: Figured out how to reproduce vfork/rsync bug! (proposed fix)
On Thu, Sep 06, 2001 at 04:13:43PM -0400, Christopher Faylor wrote:
> On Thu, Sep 06, 2001 at 02:53:26PM -0400, Jonathan Kamens wrote:
> >I think I'll try the patch that cgf just sent out and see if it makes
> >this problem go away.
> >
> >It will be very amusing if we discover that the bug I'm encountering
> >is the same as Egor's.
>
> Try this.
Just tried it. It helps.
Corinna
>
> cgf
>
> Index: spawn.cc
> ===================================================================
> RCS file: /cvs/uberbaum/winsup/cygwin/spawn.cc,v
> retrieving revision 1.86
> diff -p -r1.86 spawn.cc
> *** spawn.cc 2001/08/22 17:50:22 1.86
> --- spawn.cc 2001/09/06 20:11:48
> *************** spawn_guts (HANDLE hToken, const char *
> *** 534,545 ****
> ciresrv.moreinfo->argv = newargv;
>
> ciresrv.moreinfo->envc = envsize (envp, 1);
> ! ciresrv.moreinfo->envp = (char **) cmalloc (HEAP_1_ARGV, ciresrv.moreinfo->envc);
> ciresrv.hexec_proc = hexec_proc;
> char **c;
> const char * const *e;
> for (c = ciresrv.moreinfo->envp, e = envp; *e;)
> ! *c++ = cstrdup1 (*e++);
> *c = NULL;
> if (mode != _P_OVERLAY ||
> !DuplicateHandle (hMainProc, myself.shared_handle (), hMainProc,
> --- 534,545 ----
> ciresrv.moreinfo->argv = newargv;
>
> ciresrv.moreinfo->envc = envsize (envp, 1);
> ! ciresrv.moreinfo->envp = (char **) cmalloc (HEAP_ARGV, ciresrv.moreinfo->envc);
> ciresrv.hexec_proc = hexec_proc;
> char **c;
> const char * const *e;
> for (c = ciresrv.moreinfo->envp, e = envp; *e;)
> ! *c++ = cstrdup (*e++);
> *c = NULL;
> if (mode != _P_OVERLAY ||
> !DuplicateHandle (hMainProc, myself.shared_handle (), hMainProc,
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Developer mailto:cygwin@cygwin.com
Red Hat, Inc.