On Tue, Jul 27, 2010 at 10:49:10PM +0100, Thomas Adam wrote:
> On Tue, Jul 27, 2010 at 12:21:17PM -0400, Chris Siebenmann wrote:
> >  There's a small file descriptor leak in CMD_Exec() in fvwm/builtins.c;
> > it opens /dev/null, dup2()s it to standard input, and then never closes
> > the original file descriptor before exec'ing the command.
> > 
> >  The neurotically correct fix for this (in what I think is the right
> > fvwm coding style) is:
> > 
> > --- fvwm/builtins.c 31 Dec 2009 17:44:56 -0000      1.437
> > +++ fvwm/builtins.c 27 Jul 2010 16:17:52 -0000
> > @@ -2459,6 +2459,10 @@
> >             fvmm_deinstall_signals();
> >             fd = open("/dev/null", O_RDONLY, 0);
> >             dup2(fd,STDIN_FILENO);
> > +           if (fd != STDIN_FILENO)
> > +           {
> > +                   (void)close(fd);
> > +           }
> >             if (fvwm_setpgrp() == -1)
> >             {
> >                     fvwm_msg(ERR, "exec_function", "setpgrp failed (%s)",
> > 
> > (It seems extremely unlikely that fvwm would ever have stdin closed at
> > this point, so the less neurotic fix is just '(void)close(fd);'.)
> 
> You've not read any of the documentation about submitting patches.
> Nevermind, I will modify this and apply it to CVS soon -- I can't/won't
> apply it as-is.

Fixed in CVS.

-- Thomas Adam

-- 
"It was the cruelest game I've ever played and it's played inside my head."
-- "Hush The Warmth", Gorky's Zygotic Mynci.

Reply via email to