bash-5.1-p8

This commit is contained in:
Rmys
2021-07-26 18:37:34 +03:00
committed by GitHub
parent 3b39be31a4
commit df46310d42
5 changed files with 319 additions and 4 deletions
@@ -0,0 +1,100 @@
BASH PATCH REPORT
=================
Bash-Release: 5.1
Patch-ID: bash51-005
Bug-Reported-by: Alexander Mescheryakov <alexander.s.m@gmail.com>,
konsolebox <konsolebox@gmail.com>
Bug-Reference-ID: <5ffd7f3d.1c69fb81.dee25.166c@mx.google.com>,
<CAJnmqwaVs7M6NBqZzcHy5c2+yHkTEg7p+o8ZWuA7sN+6N1q4CA@mail.gmail.com>
Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2021-01/msg00082.html,
https://lists.gnu.org/archive/html/bug-bash/2021-04/msg00160.html
Bug-Description:
Fix two memory leaks when assigning arrays using compound assignment syntax.
Patch (apply with `patch -p0'):
*** ../bash-5.1-patched/subst.c 2020-12-16 17:01:32.000000000 -0500
--- subst.c 2021-01-24 17:48:40.000000000 -0500
***************
*** 11674,11677 ****
--- 11674,11679 ----
value = string_list (l);
+ dispose_words (l);
+
wlen = STRLEN (value);
*** ../bash-5.1-patched/arrayfunc.c 2020-12-16 17:01:32.000000000 -0500
--- arrayfunc.c 2021-04-19 16:43:09.000000000 -0400
***************
*** 565,574 ****
WORD_LIST *list;
char *akey, *aval, *k, *v;
- int free_aval;
for (list = nlist; list; list = list->next)
{
- free_aval = 0;
-
k = list->word->word;
v = list->next ? list->next->word->word : 0;
--- 565,571 ----
***************
*** 578,583 ****
akey = expand_assignment_string_to_string (k, 0);
- aval = expand_assignment_string_to_string (v, 0);
-
if (akey == 0 || *akey == 0)
{
--- 575,578 ----
***************
*** 586,599 ****
continue;
}
if (aval == 0)
{
aval = (char *)xmalloc (1);
aval[0] = '\0'; /* like do_assignment_internal */
- free_aval = 1;
}
bind_assoc_var_internal (var, h, akey, aval, flags);
! if (free_aval)
! free (aval);
}
}
--- 581,594 ----
continue;
}
+
+ aval = expand_assignment_string_to_string (v, 0);
if (aval == 0)
{
aval = (char *)xmalloc (1);
aval[0] = '\0'; /* like do_assignment_internal */
}
bind_assoc_var_internal (var, h, akey, aval, flags);
! free (aval);
}
}
*** ../bash-5.1/patchlevel.h 2020-06-22 14:51:03.000000000 -0400
--- patchlevel.h 2020-10-01 11:01:28.000000000 -0400
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 4
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 5
#endif /* _PATCHLEVEL_H_ */
@@ -0,0 +1,48 @@
BASH PATCH REPORT
=================
Bash-Release: 5.1
Patch-ID: bash51-006
Bug-Reported-by: oguzismailuysal@gmail.com
Bug-Reference-ID: <CAH7i3LoY7C+pV_yG2LxwPNtAw3kiRkxmB4KcL1dTsih0u2BdKA@mail.gmail.com>
Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2020-12/msg00108.html
Bug-Description:
Make sure child processes forked to run command substitutions are in the
proper process group.
Patch (apply with `patch -p0'):
*** ../bash-5.1-patched/subst.c 2020-12-16 17:01:32.000000000 -0500
--- subst.c 2020-12-25 19:20:25.000000000 -0500
***************
*** 6413,6416 ****
--- 6413,6423 ----
interactive = 0;
+ #if defined (JOB_CONTROL)
+ /* Invariant: in child processes started to run command substitutions,
+ pipeline_pgrp == shell_pgrp. Other parts of the shell assume this. */
+ if (pipeline_pgrp > 0 && pipeline_pgrp != shell_pgrp)
+ shell_pgrp = pipeline_pgrp;
+ #endif
+
set_sigint_handler (); /* XXX */
*** ../bash-5.1/patchlevel.h 2020-06-22 14:51:03.000000000 -0400
--- patchlevel.h 2020-10-01 11:01:28.000000000 -0400
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 5
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 6
#endif /* _PATCHLEVEL_H_ */
@@ -0,0 +1,95 @@
BASH PATCH REPORT
=================
Bash-Release: 5.1
Patch-ID: bash51-007
Bug-Reported-by: Tom Tromey <tom@tromey.com>
Bug-Reference-ID: <875z3u9fd0.fsf@tromey.com>
Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2021-01/msg00009.html
Bug-Description:
The code to check readline versions in an inputrc file had the sense of the
comparisons reversed.
Patch (apply with `patch -p0'):
*** ../bash-5.1-patched/lib/readline/bind.c 2020-10-26 10:03:14.000000000 -0400
--- lib/readline/bind.c 2021-01-18 16:38:48.000000000 -0500
***************
*** 1235,1239 ****
else if (_rl_strnicmp (args, "version", 7) == 0)
{
! int rlversion, versionarg, op, previ, major, minor;
_rl_parsing_conditionalized_out = 1;
--- 1235,1239 ----
else if (_rl_strnicmp (args, "version", 7) == 0)
{
! int rlversion, versionarg, op, previ, major, minor, opresult;
_rl_parsing_conditionalized_out = 1;
***************
*** 1295,1316 ****
{
case OP_EQ:
! _rl_parsing_conditionalized_out = rlversion == versionarg;
break;
case OP_NE:
! _rl_parsing_conditionalized_out = rlversion != versionarg;
break;
case OP_GT:
! _rl_parsing_conditionalized_out = rlversion > versionarg;
break;
case OP_GE:
! _rl_parsing_conditionalized_out = rlversion >= versionarg;
break;
case OP_LT:
! _rl_parsing_conditionalized_out = rlversion < versionarg;
break;
case OP_LE:
! _rl_parsing_conditionalized_out = rlversion <= versionarg;
break;
}
}
/* Check to see if the first word in ARGS is the same as the
--- 1295,1317 ----
{
case OP_EQ:
! opresult = rlversion == versionarg;
break;
case OP_NE:
! opresult = rlversion != versionarg;
break;
case OP_GT:
! opresult = rlversion > versionarg;
break;
case OP_GE:
! opresult = rlversion >= versionarg;
break;
case OP_LT:
! opresult = rlversion < versionarg;
break;
case OP_LE:
! opresult = rlversion <= versionarg;
break;
}
+ _rl_parsing_conditionalized_out = 1 - opresult;
}
/* Check to see if the first word in ARGS is the same as the
*** ../bash-5.1/patchlevel.h 2020-06-22 14:51:03.000000000 -0400
--- patchlevel.h 2020-10-01 11:01:28.000000000 -0400
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 6
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 7
#endif /* _PATCHLEVEL_H_ */
@@ -0,0 +1,61 @@
BASH PATCH REPORT
=================
Bash-Release: 5.1
Patch-ID: bash51-008
Bug-Reported-by: Michael Felt <aixtools@gmail.com>
Bug-Reference-ID: <b82d9a2f-5d8a-ffb2-4115-420c09272da5@felt.demon.nl>
Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2021-03/msg00028.html
Bug-Description:
Process substitution FIFOs opened by child processes as targets of redirections
were not removed appropriately, leaving remnants in the file system.
Patch (apply with `patch -p0'):
*** ../bash-5.1-patched/execute_cmd.c 2020-10-12 10:16:13.000000000 -0400
--- execute_cmd.c 2021-05-04 11:12:39.000000000 -0400
***************
*** 5557,5565 ****
/* Try to remove named pipes that may have been created as the
result of redirections. */
! unlink_fifo_list ();
#endif /* PROCESS_SUBSTITUTION */
exit (EXECUTION_FAILURE);
}
if (async)
interactive = old_interactive;
--- 5557,5571 ----
/* Try to remove named pipes that may have been created as the
result of redirections. */
! unlink_all_fifos ();
#endif /* PROCESS_SUBSTITUTION */
exit (EXECUTION_FAILURE);
}
+ #if defined (PROCESS_SUBSTITUTION) && !defined (HAVE_DEV_FD)
+ /* This should only contain FIFOs created as part of redirection
+ expansion. */
+ unlink_all_fifos ();
+ #endif
+
if (async)
interactive = old_interactive;
*** ../bash-5.1/patchlevel.h 2020-06-22 14:51:03.000000000 -0400
--- patchlevel.h 2020-10-01 11:01:28.000000000 -0400
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 7
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 8
#endif /* _PATCHLEVEL_H_ */
+15 -4
View File
@@ -19,10 +19,14 @@
<Patches>
<!-- Official Patches -->
<Patch>official/bash51-001.patch</Patch>
<Patch>official/bash51-002.patch</Patch>
<Patch>official/bash51-003.patch</Patch>
<Patch>official/bash51-004.patch</Patch>
<Patch>official/bash51-001.patch</Patch>
<Patch>official/bash51-002.patch</Patch>
<Patch>official/bash51-003.patch</Patch>
<Patch>official/bash51-004.patch</Patch>
<Patch>official/bash51-005.patch</Patch>
<Patch>official/bash51-006.patch</Patch>
<Patch>official/bash51-007.patch</Patch>
<Patch>official/bash51-008.patch</Patch>
<!-- Fedora patches -->
<Patch level="1">fedora/bash-2.02-security.patch</Patch>
@@ -77,6 +81,13 @@
</Package>
<History>
<Update release="11">
<Date>2021-07-26</Date>
<Version>5.1.8</Version>
<Comment>Version bump.</Comment>
<Name>Mustafa Cinasal</Name>
<Email>muscnsl@gmail.com</Email>
</Update>
<Update release="10">
<Date>2021-03-01</Date>
<Version>5.1.4</Version>