[bash] Don't crash when use `read' with associative array

Roman Rakus rrakus at fedoraproject.org
Wed Jun 22 14:32:27 UTC 2011


commit 35b6783bcd9e3d861a5afaedfcc068b17a21b57d
Author: Roman Rakus <rrakus at redhat.com>
Date:   Wed Jun 22 15:42:05 2011 +0200

    Don't crash when use `read' with associative array
    
    Patch from upstream. Fixes bug #715050.
    
    Signed-off-by: Roman Rakus <rrakus at redhat.com>

 bash-4.1-read-assoc-array.patch |   40 +++++++++++++++++++++++++++++++++++++++
 bash.spec                       |   11 ++++++++-
 2 files changed, 49 insertions(+), 2 deletions(-)
---
diff --git a/bash-4.1-read-assoc-array.patch b/bash-4.1-read-assoc-array.patch
new file mode 100644
index 0000000..920a450
--- /dev/null
+++ b/bash-4.1-read-assoc-array.patch
@@ -0,0 +1,40 @@
+*** ../bash-4.2-patched/builtins/read.def	2011-01-04 11:43:36.000000000 -0500
+--- builtins/read.def	2011-06-21 10:31:02.000000000 -0400
+***************
+*** 456,460 ****
+    add_unwind_protect (xfree, input_string);
+    interrupt_immediately++;
+-   terminate_immediately++;
+  
+    unbuffered_read = (nchars > 0) || (delim != '\n') || input_is_pipe;
+--- 456,459 ----
+***************
+*** 513,516 ****
+--- 512,516 ----
+        if (retval <= 0)
+  	{
++ 	  CHECK_TERMSIG;
+  	  eof = 1;
+  	  break;
+***************
+*** 623,627 ****
+  
+    interrupt_immediately--;
+-   terminate_immediately--;
+  
+  #if defined (ARRAY_VARS)
+--- 623,626 ----
+***************
+*** 643,646 ****
+--- 642,651 ----
+  	  return EXECUTION_FAILURE;	/* readonly or noassign */
+  	}
++       if (assoc_p (var))
++ 	{
++           builtin_error (_("%s: cannot convert associative to indexed array"), arrayname);
++ 	  xfree (input_string);
++ 	  return EXECUTION_FAILURE;	/* existing associative array */
++ 	}
+        array_flush (array_cell (var));
+  
+
diff --git a/bash.spec b/bash.spec
index 6becdbf..80f8591 100644
--- a/bash.spec
+++ b/bash.spec
@@ -6,7 +6,7 @@
 Version: %{baseversion}%{patchleveltag}
 Name: bash
 Summary: The GNU Bourne Again shell
-Release: 3%{?dist}
+Release: 4%{?dist}
 Group: System Environment/Shells
 License: GPLv3+
 Url: http://www.gnu.org/software/bash
@@ -65,7 +65,9 @@ Patch120: bash-4.2-rc2-logout.patch
 # Static analyzis shows some issues in bash-2.05a-interpreter.patch
 Patch121: bash-4.2-coverity.patch
 
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+# 715050, Don't crash when use `read' with associative array
+# Patch from upstream
+Patch122: bash-4.1-read-assoc-array.patch
 
 BuildRequires: texinfo bison
 BuildRequires: ncurses-devel
@@ -125,6 +127,8 @@ This package contains documentation files for %{name}.
 %patch119 -p1 -b .broken_pipe
 %patch120 -p1 -b .logout
 %patch121 -p1 -b .coverity
+# upstream patch
+%patch122 -p0 -b .read-assoc-array
 
 echo %{version} > _distribution
 echo %{release} > _patchlevel
@@ -312,6 +316,9 @@ end
 #%doc doc/*.ps doc/*.0 doc/*.html doc/article.txt
 
 %changelog
+* Wed Jun 22 2011 Roman Rakus <rrakus at redhat.com> - 4.2.10-4
+- Don't crash when use `read' with associative array (#715050)
+
 * Tue Jun 07 2011 Roman Rakus <rrakus at redhat.com> - 4.2.10-3
 - Added $HOME/.local/bin to PATH in .bash_profile (#699812)
 


More information about the scm-commits mailing list