Bash-4.4 patch 14
This commit is contained in:
parent
1aef9c7b55
commit
2fb21d75bf
2 changed files with 17 additions and 4 deletions
|
|
@ -726,6 +726,8 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
|
||||||
{
|
{
|
||||||
ofifo = num_fifos ();
|
ofifo = num_fifos ();
|
||||||
ofifo_list = copy_fifo_list ((int *)&osize);
|
ofifo_list = copy_fifo_list ((int *)&osize);
|
||||||
|
begin_unwind_frame ("internal_fifos");
|
||||||
|
add_unwind_protect (xfree, ofifo_list);
|
||||||
saved_fifo = 1;
|
saved_fifo = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -741,7 +743,10 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
|
||||||
dispose_exec_redirects ();
|
dispose_exec_redirects ();
|
||||||
#if defined (PROCESS_SUBSTITUTION)
|
#if defined (PROCESS_SUBSTITUTION)
|
||||||
if (saved_fifo)
|
if (saved_fifo)
|
||||||
|
{
|
||||||
free ((void *)ofifo_list);
|
free ((void *)ofifo_list);
|
||||||
|
discard_unwind_frame ("internal_fifos");
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
return (last_command_exit_value = EXECUTION_FAILURE);
|
return (last_command_exit_value = EXECUTION_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
@ -1060,6 +1065,7 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
|
||||||
if (nfifo > ofifo)
|
if (nfifo > ofifo)
|
||||||
close_new_fifos ((char *)ofifo_list, osize);
|
close_new_fifos ((char *)ofifo_list, osize);
|
||||||
free ((void *)ofifo_list);
|
free ((void *)ofifo_list);
|
||||||
|
discard_unwind_frame ("internal_fifos");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -4978,8 +4984,13 @@ execute_builtin_or_function (words, builtin, var, redirects,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined (PROCESS_SUBSTITUTION)
|
#if defined (PROCESS_SUBSTITUTION)
|
||||||
|
begin_unwind_frame ("saved_fifos");
|
||||||
|
/* If we return, we longjmp and don't get a chance to restore the old
|
||||||
|
fifo list, so we add an unwind protect to free it */
|
||||||
ofifo = num_fifos ();
|
ofifo = num_fifos ();
|
||||||
ofifo_list = copy_fifo_list (&osize);
|
ofifo_list = copy_fifo_list (&osize);
|
||||||
|
if (ofifo_list)
|
||||||
|
add_unwind_protect (xfree, ofifo_list);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (do_redirections (redirects, RX_ACTIVE|RX_UNDOABLE) != 0)
|
if (do_redirections (redirects, RX_ACTIVE|RX_UNDOABLE) != 0)
|
||||||
|
|
@ -5063,7 +5074,9 @@ execute_builtin_or_function (words, builtin, var, redirects,
|
||||||
nfifo = num_fifos ();
|
nfifo = num_fifos ();
|
||||||
if (nfifo > ofifo)
|
if (nfifo > ofifo)
|
||||||
close_new_fifos (ofifo_list, osize);
|
close_new_fifos (ofifo_list, osize);
|
||||||
|
if (ofifo_list)
|
||||||
free (ofifo_list);
|
free (ofifo_list);
|
||||||
|
discard_unwind_frame ("saved_fifos");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return (result);
|
return (result);
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,6 @@
|
||||||
regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh
|
regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh
|
||||||
looks for to find the patch level (for the sccs version string). */
|
looks for to find the patch level (for the sccs version string). */
|
||||||
|
|
||||||
#define PATCHLEVEL 13
|
#define PATCHLEVEL 14
|
||||||
|
|
||||||
#endif /* _PATCHLEVEL_H_ */
|
#endif /* _PATCHLEVEL_H_ */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue