summaryrefslogtreecommitdiffstats
path: root/source/a/bash/bash-4.4-patches/bash44-014
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2018-05-28 19:12:29 +0000
committer Eric Hameleers <alien@slackware.com>2018-05-31 23:39:35 +0200
commit646a5c1cbfd95873950a87b5f75d52073a967023 (patch)
treeb8b8d2ab3b0d432ea69ad1a64d1c789649d65020 /source/a/bash/bash-4.4-patches/bash44-014
parentd31c50870d0bee042ce660e445c9294a59a3a65b (diff)
downloadcurrent-646a5c1cbfd95873950a87b5f75d52073a967023.tar.gz
current-646a5c1cbfd95873950a87b5f75d52073a967023.tar.xz
Mon May 28 19:12:29 UTC 201820180528191229
a/pkgtools-15.0-noarch-13.txz: Rebuilt. installpkg: default line length for --terselength is the number of columns. removepkg: added --terse mode. upgradepkg: default line length for --terselength is the number of columns. upgradepkg: accept -option in addition to --option. ap/vim-8.1.0026-x86_64-1.txz: Upgraded. d/bison-3.0.5-x86_64-1.txz: Upgraded. e/emacs-26.1-x86_64-1.txz: Upgraded. kde/kopete-4.14.3-x86_64-8.txz: Rebuilt. Recompiled against libidn-1.35. n/conntrack-tools-1.4.5-x86_64-1.txz: Upgraded. n/libnetfilter_conntrack-1.0.7-x86_64-1.txz: Upgraded. n/libnftnl-1.1.0-x86_64-1.txz: Upgraded. n/links-2.16-x86_64-2.txz: Rebuilt. Rebuilt to enable X driver for -g mode. n/lynx-2.8.9dev.19-x86_64-1.txz: Upgraded. n/nftables-0.8.5-x86_64-1.txz: Upgraded. n/p11-kit-0.23.11-x86_64-1.txz: Upgraded. n/ulogd-2.0.7-x86_64-1.txz: Upgraded. n/whois-5.3.1-x86_64-1.txz: Upgraded. xap/network-manager-applet-1.8.12-x86_64-1.txz: Upgraded. xap/vim-gvim-8.1.0026-x86_64-1.txz: Upgraded.
Diffstat (limited to 'source/a/bash/bash-4.4-patches/bash44-014')
-rw-r--r--source/a/bash/bash-4.4-patches/bash44-014104
1 files changed, 104 insertions, 0 deletions
diff --git a/source/a/bash/bash-4.4-patches/bash44-014 b/source/a/bash/bash-4.4-patches/bash44-014
new file mode 100644
index 000000000..ad3c78ac8
--- /dev/null
+++ b/source/a/bash/bash-4.4-patches/bash44-014
@@ -0,0 +1,104 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.4
+Patch-ID: bash44-014
+
+Bug-Reported-by: Oyvind Hvidsten <oyvind.hvidsten@dhampir.no>
+Bug-Reference-ID: <c01b7049-925c-9409-d978-e59bf42591f4@dhampir.no>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2017-12/msg00023.html
+
+Bug-Description:
+
+Under some circumstances, functions that return via the `return' builtin do
+not clean up memory they allocated to keep track of FIFOs.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-20171205/execute_cmd.c 2017-12-08 07:38:28.000000000 -0500
+--- execute_cmd.c 2018-01-26 15:23:38.000000000 -0500
+***************
+*** 727,730 ****
+--- 727,732 ----
+ ofifo = num_fifos ();
+ ofifo_list = copy_fifo_list ((int *)&osize);
++ begin_unwind_frame ("internal_fifos");
++ add_unwind_protect (xfree, ofifo_list);
+ saved_fifo = 1;
+ }
+***************
+*** 742,746 ****
+ #if defined (PROCESS_SUBSTITUTION)
+ if (saved_fifo)
+! free ((void *)ofifo_list);
+ #endif
+ return (last_command_exit_value = EXECUTION_FAILURE);
+--- 744,751 ----
+ #if defined (PROCESS_SUBSTITUTION)
+ if (saved_fifo)
+! {
+! free ((void *)ofifo_list);
+! discard_unwind_frame ("internal_fifos");
+! }
+ #endif
+ return (last_command_exit_value = EXECUTION_FAILURE);
+***************
+*** 1061,1064 ****
+--- 1066,1070 ----
+ close_new_fifos ((char *)ofifo_list, osize);
+ free ((void *)ofifo_list);
++ discard_unwind_frame ("internal_fifos");
+ }
+ #endif
+***************
+*** 4978,4984 ****
+ #endif
+
+! #if defined (PROCESS_SUBSTITUTION)
+ ofifo = num_fifos ();
+ ofifo_list = copy_fifo_list (&osize);
+ #endif
+
+--- 4984,4995 ----
+ #endif
+
+! #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_list = copy_fifo_list (&osize);
++ if (ofifo_list)
++ add_unwind_protect (xfree, ofifo_list);
+ #endif
+
+***************
+*** 5064,5068 ****
+ if (nfifo > ofifo)
+ close_new_fifos (ofifo_list, osize);
+! free (ofifo_list);
+ #endif
+
+--- 5075,5081 ----
+ if (nfifo > ofifo)
+ close_new_fifos (ofifo_list, osize);
+! if (ofifo_list)
+! free (ofifo_list);
+! discard_unwind_frame ("saved_fifos");
+ #endif
+
+*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
+--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 13
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 14
+
+ #endif /* _PATCHLEVEL_H_ */