65 lines
2.0 KiB
Diff
65 lines
2.0 KiB
Diff
|
From https://ftp.gnu.org/gnu/bash/bash-4.4-patches/bash44-001
|
||
|
|
||
|
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||
|
|
||
|
BASH PATCH REPORT
|
||
|
=================
|
||
|
|
||
|
Bash-Release: 4.4
|
||
|
Patch-ID: bash44-001
|
||
|
|
||
|
Bug-Reported-by: Sean Zha <freeman_cha@hotmail.com>
|
||
|
Bug-Reference-ID: <BN3PR01MB13657D9303EB94BF6E54216E8CCA0@BN3PR01MB1365.prod.exchangelabs.com>
|
||
|
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2016-09/msg00107.html
|
||
|
|
||
|
Bug-Description:
|
||
|
|
||
|
Bash-4.4 changed the way the history list is initially allocated to reduce
|
||
|
the number of reallocations and copies. Users who set HISTSIZE to a very
|
||
|
large number to essentially unlimit the size of the history list will get
|
||
|
memory allocation errors
|
||
|
|
||
|
Patch (apply with `patch -p0'):
|
||
|
|
||
|
*** a/bash-4.4/lib/readline/history.c 2015-12-28 13:50:31.000000000 -0500
|
||
|
--- b/lib/readline/history.c 2016-09-30 14:28:40.000000000 -0400
|
||
|
***************
|
||
|
*** 58,61 ****
|
||
|
--- 58,63 ----
|
||
|
#define DEFAULT_HISTORY_INITIAL_SIZE 502
|
||
|
|
||
|
+ #define MAX_HISTORY_INITIAL_SIZE 8192
|
||
|
+
|
||
|
/* The number of slots to increase the_history by. */
|
||
|
#define DEFAULT_HISTORY_GROW_SIZE 50
|
||
|
***************
|
||
|
*** 308,312 ****
|
||
|
{
|
||
|
if (history_stifled && history_max_entries > 0)
|
||
|
! history_size = history_max_entries + 2;
|
||
|
else
|
||
|
history_size = DEFAULT_HISTORY_INITIAL_SIZE;
|
||
|
--- 310,316 ----
|
||
|
{
|
||
|
if (history_stifled && history_max_entries > 0)
|
||
|
! history_size = (history_max_entries > MAX_HISTORY_INITIAL_SIZE)
|
||
|
! ? MAX_HISTORY_INITIAL_SIZE
|
||
|
! : history_max_entries + 2;
|
||
|
else
|
||
|
history_size = DEFAULT_HISTORY_INITIAL_SIZE;
|
||
|
*** a/bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
|
||
|
--- b/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 0
|
||
|
|
||
|
#endif /* _PATCHLEVEL_H_ */
|
||
|
--- 26,30 ----
|
||
|
looks for to find the patch level (for the sccs version string). */
|
||
|
|
||
|
! #define PATCHLEVEL 1
|
||
|
|
||
|
#endif /* _PATCHLEVEL_H_ */
|