[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
SEGV on recursive trap
From: |
Nobuyoshi Nakada |
Subject: |
SEGV on recursive trap |
Date: |
Thu, 09 May 2002 11:00:57 +0900 |
User-agent: |
Wanderlust/2.8.1 (Something) EMIKO/1.14.1 (Choanoflagellata) LIMIT/1.14.7 (Fujiidera) APEL/10.3 MULE XEmacs/21.4 (patch 6) (Common Lisp) (i586-kondara-linux) |
Configuration Information [Automatically generated, do not change]:
Machine: i686
OS: linux-gnu
Compiler: gcc
Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='i686'
-DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='i686-pc-linux-gnu'
-DCONF_VENDOR='pc' -DSHELL -DHAVE_CONFIG_H -I. -I. -I./include -I./lib -ggdb
-g3 -O
uname output: Linux sharui.nakada.kanuma.tochigi.jp 2.4.18-pre9 #1 SMP Mon Feb
11 10:22:09 JST 2002 i686 unknown
Machine Type: i686-pc-linux-gnu
Bash Version: 2.05a
Patch Level: 0
Release Status: release
Description:
If trapping command runs while it's already running,
job list for previous one is discarded.
Repeat-By:
Running following script, and hit Ctrl-C twice.
#! /bin/sh
trap "echo trap; sleep 10" 0 2
Fix:
--- jobs.c~ Mon Nov 5 23:56:17 2001
+++ jobs.c Thu May 9 10:52:04 2002
@@ -2524,4 +2524,5 @@ set_job_status_and_cleanup (job)
signal_is_trapped (SIGINT))
{
+ int old_jobs_list_frozen = jobs_list_frozen;
wait_sigint_received = 0;
last_command_exit_value = process_exit_status (child->status);
@@ -2529,5 +2530,5 @@ set_job_status_and_cleanup (job)
jobs_list_frozen = 1;
tstatus = maybe_call_trap_handler (SIGINT);
- jobs_list_frozen = 0;
+ jobs_list_frozen = old_jobs_list_frozen;
}
@@ -2544,4 +2545,5 @@ set_job_status_and_cleanup (job)
IS_FOREGROUND (job) && IS_JOBCONTROL (job) == 0)
{
+ int old_jobs_list_frozen = jobs_list_frozen;
wait_sigint_received = 0;
@@ -2558,5 +2560,5 @@ set_job_status_and_cleanup (job)
jobs_list_frozen = 1;
tstatus = maybe_call_trap_handler (SIGINT);
- jobs_list_frozen = 0;
+ jobs_list_frozen = old_jobs_list_frozen;
if (tstatus == 0 && old_sigint_handler != INVALID_SIGNAL_HANDLER)
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- SEGV on recursive trap,
Nobuyoshi Nakada <=