Flags set in signal handlers should be volatile sig_atomic_t
From: Todd C. Miller <millert@cvs.openbsd.org>
This commit is contained in:
parent
506319026b
commit
cddaa62a46
8
edit.c
8
edit.c
@ -1,5 +1,5 @@
|
|||||||
/** $MirBSD: src/bin/ksh/edit.c,v 2.4 2004/12/18 19:22:28 tg Exp $ */
|
/** $MirBSD: src/bin/ksh/edit.c,v 2.5 2004/12/28 22:28:01 tg Exp $ */
|
||||||
/* $OpenBSD: edit.c,v 1.18 2003/08/22 18:17:10 fgsch Exp $ */
|
/* $OpenBSD: edit.c,v 1.23 2004/12/18 22:12:23 millert Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Command line editing - common code
|
* Command line editing - common code
|
||||||
@ -21,11 +21,11 @@
|
|||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include "ksh_stat.h"
|
#include "ksh_stat.h"
|
||||||
|
|
||||||
__RCSID("$MirBSD: src/bin/ksh/edit.c,v 2.4 2004/12/18 19:22:28 tg Exp $");
|
__RCSID("$MirBSD: src/bin/ksh/edit.c,v 2.5 2004/12/28 22:28:01 tg Exp $");
|
||||||
|
|
||||||
#if defined(TIOCGWINSZ)
|
#if defined(TIOCGWINSZ)
|
||||||
static RETSIGTYPE x_sigwinch(int sig);
|
static RETSIGTYPE x_sigwinch(int sig);
|
||||||
static int got_sigwinch;
|
static volatile sig_atomic_t got_sigwinch;
|
||||||
static void check_sigwinch(void);
|
static void check_sigwinch(void);
|
||||||
#endif /* TIOCGWINSZ */
|
#endif /* TIOCGWINSZ */
|
||||||
|
|
||||||
|
8
jobs.c
8
jobs.c
@ -1,5 +1,5 @@
|
|||||||
/** $MirBSD: src/bin/ksh/jobs.c,v 2.4 2004/12/18 19:22:29 tg Exp $ */
|
/** $MirBSD: src/bin/ksh/jobs.c,v 2.5 2004/12/28 22:28:01 tg Exp $ */
|
||||||
/* $OpenBSD: jobs.c,v 1.21 2003/11/10 21:26:39 millert Exp $ */
|
/* $OpenBSD: jobs.c,v 1.26 2004/12/18 22:12:23 millert Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Process and job control
|
* Process and job control
|
||||||
@ -31,7 +31,7 @@
|
|||||||
#include "ksh_times.h"
|
#include "ksh_times.h"
|
||||||
#include "tty.h"
|
#include "tty.h"
|
||||||
|
|
||||||
__RCSID("$MirBSD: src/bin/ksh/jobs.c,v 2.4 2004/12/18 19:22:29 tg Exp $");
|
__RCSID("$MirBSD: src/bin/ksh/jobs.c,v 2.5 2004/12/28 22:28:01 tg Exp $");
|
||||||
|
|
||||||
/* Start of system configuration stuff */
|
/* Start of system configuration stuff */
|
||||||
|
|
||||||
@ -181,7 +181,7 @@ static int child_max; /* CHILD_MAX */
|
|||||||
|
|
||||||
#ifdef JOB_SIGS
|
#ifdef JOB_SIGS
|
||||||
/* held_sigchld is set if sigchld occurs before a job is completely started */
|
/* held_sigchld is set if sigchld occurs before a job is completely started */
|
||||||
static int held_sigchld;
|
static volatile sig_atomic_t held_sigchld;
|
||||||
#endif /* JOB_SIGS */
|
#endif /* JOB_SIGS */
|
||||||
|
|
||||||
#ifdef JOBS
|
#ifdef JOBS
|
||||||
|
12
sh.h
12
sh.h
@ -1,5 +1,5 @@
|
|||||||
/** $MirBSD: src/bin/ksh/sh.h,v 2.6 2004/12/18 19:27:21 tg Exp $ */
|
/** $MirBSD: src/bin/ksh/sh.h,v 2.7 2004/12/28 22:28:01 tg Exp $ */
|
||||||
/* $OpenBSD: sh.h,v 1.18 2004/05/31 10:36:35 otto Exp $ */
|
/* $OpenBSD: sh.h,v 1.23 2004/12/18 22:11:43 millert Exp $ */
|
||||||
|
|
||||||
#ifndef SH_H
|
#ifndef SH_H
|
||||||
#define SH_H
|
#define SH_H
|
||||||
@ -502,7 +502,7 @@ typedef struct trap {
|
|||||||
const char *name; /* short name */
|
const char *name; /* short name */
|
||||||
const char *mess; /* descriptive name */
|
const char *mess; /* descriptive name */
|
||||||
char *trap; /* trap command */
|
char *trap; /* trap command */
|
||||||
int volatile set; /* trap pending */
|
volatile sig_atomic_t set; /* trap pending */
|
||||||
int flags; /* TF_* */
|
int flags; /* TF_* */
|
||||||
handler_t cursig; /* current handler (valid if TF_ORIG_* set) */
|
handler_t cursig; /* current handler (valid if TF_ORIG_* set) */
|
||||||
handler_t shtrap; /* shell signal handler */
|
handler_t shtrap; /* shell signal handler */
|
||||||
@ -533,9 +533,9 @@ typedef struct trap {
|
|||||||
#define SIGEXIT_ 0 /* for trap EXIT */
|
#define SIGEXIT_ 0 /* for trap EXIT */
|
||||||
#define SIGERR_ SIGNALS /* for trap ERR */
|
#define SIGERR_ SIGNALS /* for trap ERR */
|
||||||
|
|
||||||
EXTERN int volatile trap; /* traps pending? */
|
EXTERN volatile sig_atomic_t trap; /* traps pending? */
|
||||||
EXTERN int volatile intrsig; /* pending trap interrupts executing command */
|
EXTERN volatile sig_atomic_t intrsig; /* pending trap interrupts executing command */
|
||||||
EXTERN int volatile fatal_trap;/* received a fatal signal */
|
EXTERN volatile sig_atomic_t fatal_trap;/* received a fatal signal */
|
||||||
#ifndef FROM_TRAP_C
|
#ifndef FROM_TRAP_C
|
||||||
/* Kludge to avoid bogus re-declaration of sigtraps[] error on AIX 3.2.5 */
|
/* Kludge to avoid bogus re-declaration of sigtraps[] error on AIX 3.2.5 */
|
||||||
extern Trap sigtraps[SIGNALS+1];
|
extern Trap sigtraps[SIGNALS+1];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user