[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Bug in patch bash42-018, leaves lastpipe_flag unitialized for platforms
John E. Malmberg
Bug in patch bash42-018, leaves lastpipe_flag unitialized for platforms with out JOB_CONTROL.
Thu, 21 Jun 2012 07:42:08 -0500
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0) Gecko/20120129 Thunderbird/10.0
The patch bash42-018 to allow execute_cmd.c that is supposed to allow it
to compile with out JOB_CONTROL defined has a bug in it.
It is leaving the lastpipe_flag uninitialized. This is a problem
because later in the module it is tested.
*** ../bash-4.2-patched/execute_cmd.c 2011-02-09 17:32:25.000000000 -0500
--- execute_cmd.c 2011-11-06 15:12:48.000000000 -0500
*** 2197,2200 ****
--- 2315,2319 ----
cmd->flags |= CMD_IGNORE_RETURN;
+ #if defined (JOB_CONTROL)
lastpipe_flag = 0;
The simple fix of moving the "#if defined (JOBCONTROL)" line below the
"lastpipe_flag = 0;" may not be the ideal patch.
This is because JOB_CONTROL undefined, the entire if block lower below
"QUIT;" is never executed, as lastpipe_flag is always 0.
Which means that it is kind of useless to have #if defined(JOB_CONTROL)
blocks inside of it. If this is the intended logic flow, then the
entire "if (lastpipe_flag)" block should be conditionally compiled out.
Doing that and leaving the definition of the lastpipe_flag undefined as
in the original patch will still result in a compiler diagnostic about
an unused variable.
So that would need an #if defined (JOBCONTROL) needed around the
So what should be the correct patch? Is there another bug hiding in this?
Personal Opinion Only
- Bug in patch bash42-018, leaves lastpipe_flag unitialized for platforms with out JOB_CONTROL.,
John E. Malmberg <=