File: bash41-005.dpatch

package info (click to toggle)
bash 4.1-3
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 3,108 kB
  • ctags: 161
  • sloc: sh: 1,555; ansic: 854; makefile: 479
file content (75 lines) | stat: -rw-r--r-- 2,085 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#! /bin/sh -e

if [ $# -eq 3 -a "$2" = '-d' ]; then
    pdir="-d $3"
elif [ $# -ne 1 ]; then
    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
    exit 1
fi
case "$1" in
    -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;;
    -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;;
    *)
	echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
	exit 1
esac
exit 0

# DP: bash-4.1 upstream patch 005

			     BASH PATCH REPORT
			     =================

Bash-Release:	4.1
Patch-ID:	bash41-005

Bug-Reported-by:	werner@suse.de
Bug-Reference-ID:	<201002251238.o1PCcYcg016893@boole.suse.de>
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2010-02/msg00132.html

Bug-Description:

When the `read' builtin times out after the timeout specified with -t is
exceeded, it does not reset the flags that tell signal handlers to process
signals immediately instead of deferring their handling.  This can result
in unsafe functions being called from signal handlers, which can cause bash
to hang or dump core.

Patch (apply with `patch -p0'):

*** ../bash-4.1-patched/builtins/read.def	2009-10-08 11:35:46.000000000 -0400
--- ./builtins/read.def	2010-03-17 17:35:39.000000000 -0400
***************
*** 616,621 ****
      zsyncfd (fd);
  
-   interrupt_immediately--;
-   terminate_immediately--;
    discard_unwind_frame ("read_builtin");
  
--- 616,619 ----
***************
*** 624,627 ****
--- 622,628 ----
  assign_vars:
  
+   interrupt_immediately--;
+   terminate_immediately--;
+ 
  #if defined (ARRAY_VARS)
    /* If -a was given, take the string read, break it into a list of words,
*** ../bash-4.1-patched/patchlevel.h	2009-10-01 16:39:22.000000000 -0400
--- ./patchlevel.h	2010-01-14 09:38:08.000000000 -0500
***************
*** 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_ */