Bug fix: The signal handler aborted on SIGCONT, SIGTSTP, SIGTTIN, SIGTTOU

This commit is contained in:
Thomas Schmitt 2013-07-21 17:07:53 +00:00
parent c3a01f46d0
commit 4e80f16de2
6 changed files with 43 additions and 50 deletions

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2013.07.08.151826" #define Cdrskin_timestamP "2013.07.21.170714"

View File

@ -5,7 +5,8 @@
Unknown POSIX like systems Unknown POSIX like systems
with the dummy MMC transport adapter sg-dummy.c with the dummy MMC transport adapter sg-dummy.c
Copyright (C) 2009 Thomas Schmitt <scdbackup@gmx.net>, provided under GPLv2+ Copyright (C) 2009 - 2013 Thomas Schmitt <scdbackup@gmx.net>
Provided under GPLv2+
*/ */
@ -16,18 +17,16 @@
#define BURN_OS_SIGNAL_MACRO_LIST \ #define BURN_OS_SIGNAL_MACRO_LIST \
SIGHUP, SIGINT, SIGQUIT, SIGILL, SIGABRT, \ SIGHUP, SIGINT, SIGQUIT, SIGILL, SIGABRT, \
SIGFPE, SIGSEGV, SIGPIPE, SIGALRM, SIGTERM, \ SIGFPE, SIGSEGV, SIGPIPE, SIGALRM, SIGTERM, \
SIGUSR1, SIGUSR2, SIGXCPU, SIGTSTP, SIGTTIN, \ SIGUSR1, SIGUSR2, SIGXCPU
SIGTTOU
/* Once as text 1:1 list of strings for messages and interpreters */ /* Once as text 1:1 list of strings for messages and interpreters */
#define BURN_OS_SIGNAL_NAME_LIST \ #define BURN_OS_SIGNAL_NAME_LIST \
"SIGHUP", "SIGINT", "SIGQUIT", "SIGILL", "SIGABRT", \ "SIGHUP", "SIGINT", "SIGQUIT", "SIGILL", "SIGABRT", \
"SIGFPE", "SIGSEGV", "SIGPIPE", "SIGALRM", "SIGTERM", \ "SIGFPE", "SIGSEGV", "SIGPIPE", "SIGALRM", "SIGTERM", \
"SIGUSR1", "SIGUSR2", "SIGXCPU", "SIGTSTP", "SIGTTIN", \ "SIGUSR1", "SIGUSR2", "SIGXCPU"
"SIGTTOU"
/* The number of above list items */ /* The number of above list items */
#define BURN_OS_SIGNAL_COUNT 16 #define BURN_OS_SIGNAL_COUNT 13
/** The list of all signals which shall surely not be caught. /** The list of all signals which shall surely not be caught.
It depends on the particular signal whether it can be ignored or whether It depends on the particular signal whether it can be ignored or whether
@ -55,11 +54,12 @@
/** The combined list of all signals which shall not be caught. /** The combined list of all signals which shall not be caught.
*/ */
#define BURN_OS_NON_SIGNAL_MACRO_LIST \ #define BURN_OS_NON_SIGNAL_MACRO_LIST \
SIGKILL, SIGCHLD, SIGSTOP BURN_OS_SIG_WINCH BURN_OS_SIG_URG SIGKILL, SIGCHLD, SIGSTOP, SIGTSTP, SIGCONT, SIGTTIN, SIGTTOU \
BURN_OS_SIG_WINCH BURN_OS_SIG_URG
/* The number of above list items */ /* The number of above list items */
#define BURN_OS_NON_SIGNAL_COUNT \ #define BURN_OS_NON_SIGNAL_COUNT \
( 3 + BURN_OS_SIG_WINCH_CNT + BURN_OS_SIG_URG_CNT ) ( 7 + BURN_OS_SIG_WINCH_CNT + BURN_OS_SIG_URG_CNT )
/* The maximum size for a (SCSI) i/o transaction */ /* The maximum size for a (SCSI) i/o transaction */

View File

@ -4,8 +4,8 @@
by os.h in case of compilation for by os.h in case of compilation for
FreeBSD with CAM FreeBSD with CAM
Copyright (C) 2006 - 2010 Thomas Schmitt <scdbackup@gmx.net>, Copyright (C) 2006 - 2013 Thomas Schmitt <scdbackup@gmx.net>,
provided under GPLv2+ Provided under GPLv2+
*/ */
/** List of all signals which shall be caught by signal handlers and trigger /** List of all signals which shall be caught by signal handlers and trigger
@ -15,29 +15,25 @@
#define BURN_OS_SIGNAL_MACRO_LIST \ #define BURN_OS_SIGNAL_MACRO_LIST \
SIGHUP, SIGINT, SIGQUIT, SIGILL, SIGABRT, \ SIGHUP, SIGINT, SIGQUIT, SIGILL, SIGABRT, \
SIGFPE, SIGSEGV, SIGPIPE, SIGALRM, SIGTERM, \ SIGFPE, SIGSEGV, SIGPIPE, SIGALRM, SIGTERM, \
SIGUSR1, SIGUSR2, SIGXCPU, SIGTSTP, SIGTTIN, \ SIGUSR1, SIGUSR2, SIGXCPU, SIGBUS, SIGPROF, \
SIGTTOU, \ SIGSYS, SIGTRAP, SIGVTALRM, SIGXCPU, SIGXFSZ
SIGBUS, SIGPROF, SIGSYS, SIGTRAP, \
SIGVTALRM, SIGXCPU, SIGXFSZ
/* Once as text 1:1 list of strings for messages and interpreters */ /* Once as text 1:1 list of strings for messages and interpreters */
#define BURN_OS_SIGNAL_NAME_LIST \ #define BURN_OS_SIGNAL_NAME_LIST \
"SIGHUP", "SIGINT", "SIGQUIT", "SIGILL", "SIGABRT", \ "SIGHUP", "SIGINT", "SIGQUIT", "SIGILL", "SIGABRT", \
"SIGFPE", "SIGSEGV", "SIGPIPE", "SIGALRM", "SIGTERM", \ "SIGFPE", "SIGSEGV", "SIGPIPE", "SIGALRM", "SIGTERM", \
"SIGUSR1", "SIGUSR2", "SIGXCPU", "SIGTSTP", "SIGTTIN", \ "SIGUSR1", "SIGUSR2", "SIGXCPU", "SIGBUS", "SIGPROF", \
"SIGTTOU", \ "SIGSYS", "SIGTRAP", "SIGVTALRM", "SIGXCPU", "SIGXFSZ"
"SIGBUS", "SIGPROF", "SIGSYS", "SIGTRAP", \
"SIGVTALRM", "SIGXCPU", "SIGXFSZ"
/* The number of above list items */ /* The number of above list items */
#define BURN_OS_SIGNAL_COUNT 23 #define BURN_OS_SIGNAL_COUNT 20
/** To list all signals which shall surely not be caught */ /** To list all signals which shall surely not be caught */
#define BURN_OS_NON_SIGNAL_MACRO_LIST \ #define BURN_OS_NON_SIGNAL_MACRO_LIST \
SIGKILL, SIGCHLD, SIGSTOP, SIGURG, SIGWINCH SIGKILL, SIGCHLD, SIGSTOP, SIGTSTP, SIGCONT, SIGTTIN, SIGTTOU, SIGURG, SIGWINCH
/* The number of above list items */ /* The number of above list items */
#define BURN_OS_NON_SIGNAL_COUNT 5 #define BURN_OS_NON_SIGNAL_COUNT 9
/* The maximum size for a (SCSI) i/o transaction */ /* The maximum size for a (SCSI) i/o transaction */

View File

@ -5,7 +5,8 @@
Unknown X/Open-like systems Unknown X/Open-like systems
with GNU libcdio MMC transport adapter sg-libcdio.c with GNU libcdio MMC transport adapter sg-libcdio.c
Copyright (C) 2009 Thomas Schmitt <scdbackup@gmx.net>, provided under GPLv2+ Copyright (C) 2009 - 2013 Thomas Schmitt <scdbackup@gmx.net>
Provided under GPLv2+
*/ */
@ -16,18 +17,16 @@
#define BURN_OS_SIGNAL_MACRO_LIST \ #define BURN_OS_SIGNAL_MACRO_LIST \
SIGHUP, SIGINT, SIGQUIT, SIGILL, SIGABRT, \ SIGHUP, SIGINT, SIGQUIT, SIGILL, SIGABRT, \
SIGFPE, SIGSEGV, SIGPIPE, SIGALRM, SIGTERM, \ SIGFPE, SIGSEGV, SIGPIPE, SIGALRM, SIGTERM, \
SIGUSR1, SIGUSR2, SIGXCPU, SIGTSTP, SIGTTIN, \ SIGUSR1, SIGUSR2, SIGXCPU
SIGTTOU
/* Once as text 1:1 list of strings for messages and interpreters */ /* Once as text 1:1 list of strings for messages and interpreters */
#define BURN_OS_SIGNAL_NAME_LIST \ #define BURN_OS_SIGNAL_NAME_LIST \
"SIGHUP", "SIGINT", "SIGQUIT", "SIGILL", "SIGABRT", \ "SIGHUP", "SIGINT", "SIGQUIT", "SIGILL", "SIGABRT", \
"SIGFPE", "SIGSEGV", "SIGPIPE", "SIGALRM", "SIGTERM", \ "SIGFPE", "SIGSEGV", "SIGPIPE", "SIGALRM", "SIGTERM", \
"SIGUSR1", "SIGUSR2", "SIGXCPU", "SIGTSTP", "SIGTTIN", \ "SIGUSR1", "SIGUSR2", "SIGXCPU"
"SIGTTOU"
/* The number of above list items */ /* The number of above list items */
#define BURN_OS_SIGNAL_COUNT 16 #define BURN_OS_SIGNAL_COUNT 13
/** The list of all signals which shall surely not be caught. /** The list of all signals which shall surely not be caught.
@ -56,11 +55,12 @@
/** The combined list of all signals which shall not be caught. /** The combined list of all signals which shall not be caught.
*/ */
#define BURN_OS_NON_SIGNAL_MACRO_LIST \ #define BURN_OS_NON_SIGNAL_MACRO_LIST \
SIGKILL, SIGCHLD, SIGSTOP BURN_OS_SIG_WINCH BURN_OS_SIG_URG SIGKILL, SIGCHLD, SIGSTOP, SIGTSTP, SIGCONT, SIGTTIN, SIGTTOU \
BURN_OS_SIG_WINCH BURN_OS_SIG_URG
/* The number of above list items */ /* The number of above list items */
#define BURN_OS_NON_SIGNAL_COUNT \ #define BURN_OS_NON_SIGNAL_COUNT \
( 3 + BURN_OS_SIG_WINCH_CNT + BURN_OS_SIG_URG_CNT ) ( 7 + BURN_OS_SIG_WINCH_CNT + BURN_OS_SIG_URG_CNT )
/* The maximum size for a (SCSI) i/o transaction */ /* The maximum size for a (SCSI) i/o transaction */

View File

@ -4,7 +4,7 @@
by os.h in case of compilation for by os.h in case of compilation for
Linux kernels 2.4 and 2.6, GNU/Linux SCSI Generic (sg) Linux kernels 2.4 and 2.6, GNU/Linux SCSI Generic (sg)
Copyright (C) 2006 - 2010 Thomas Schmitt <scdbackup@gmx.net> Copyright (C) 2006 - 2013 Thomas Schmitt <scdbackup@gmx.net>
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
*/ */
@ -16,29 +16,27 @@
#define BURN_OS_SIGNAL_MACRO_LIST \ #define BURN_OS_SIGNAL_MACRO_LIST \
SIGHUP, SIGINT, SIGQUIT, SIGILL, SIGABRT, \ SIGHUP, SIGINT, SIGQUIT, SIGILL, SIGABRT, \
SIGFPE, SIGSEGV, SIGPIPE, SIGALRM, SIGTERM, \ SIGFPE, SIGSEGV, SIGPIPE, SIGALRM, SIGTERM, \
SIGUSR1, SIGUSR2, SIGXCPU, SIGTSTP, SIGTTIN, \ SIGUSR1, SIGUSR2, SIGXCPU, SIGBUS, SIGPOLL, \
SIGTTOU, \ SIGPROF, SIGSYS, SIGTRAP, SIGVTALRM, SIGXCPU, \
SIGBUS, SIGPOLL, SIGPROF, SIGSYS, SIGTRAP, \ SIGXFSZ
SIGVTALRM, SIGXCPU, SIGXFSZ
/* Once as text 1:1 list of strings for messages and interpreters */ /* Once as text 1:1 list of strings for messages and interpreters */
#define BURN_OS_SIGNAL_NAME_LIST \ #define BURN_OS_SIGNAL_NAME_LIST \
"SIGHUP", "SIGINT", "SIGQUIT", "SIGILL", "SIGABRT", \ "SIGHUP", "SIGINT", "SIGQUIT", "SIGILL", "SIGABRT", \
"SIGFPE", "SIGSEGV", "SIGPIPE", "SIGALRM", "SIGTERM", \ "SIGFPE", "SIGSEGV", "SIGPIPE", "SIGALRM", "SIGTERM", \
"SIGUSR1", "SIGUSR2", "SIGXCPU", "SIGTSTP", "SIGTTIN", \ "SIGUSR1", "SIGUSR2", "SIGXCPU", "SIGBUS", "SIGPOLL", \
"SIGTTOU", \ "SIGPROF", "SIGSYS", "SIGTRAP", "SIGVTALRM", "SIGXCPU", \
"SIGBUS", "SIGPOLL", "SIGPROF", "SIGSYS", "SIGTRAP", \ "SIGXFSZ"
"SIGVTALRM", "SIGXCPU", "SIGXFSZ"
/* The number of above list items */ /* The number of above list items */
#define BURN_OS_SIGNAL_COUNT 24 #define BURN_OS_SIGNAL_COUNT 21
/** To list all signals which shall surely not be caught */ /** To list all signals which shall surely not be caught */
#define BURN_OS_NON_SIGNAL_MACRO_LIST \ #define BURN_OS_NON_SIGNAL_MACRO_LIST \
SIGKILL, SIGCHLD, SIGSTOP, SIGURG, SIGWINCH SIGKILL, SIGCHLD, SIGSTOP, SIGTSTP, SIGCONT, SIGURG, SIGWINCH, SIGTTIN, SIGTTOU
/* The number of above list items */ /* The number of above list items */
#define BURN_OS_NON_SIGNAL_COUNT 5 #define BURN_OS_NON_SIGNAL_COUNT 9
/* The maximum size for a (SCSI) i/o transaction */ /* The maximum size for a (SCSI) i/o transaction */

View File

@ -5,7 +5,8 @@
Solaris based systems, e.g. SunOS 5.11 Solaris based systems, e.g. SunOS 5.11
with Solaris uscsi MMC transport adapter sg-solaris.c with Solaris uscsi MMC transport adapter sg-solaris.c
Copyright (C) 2010 Thomas Schmitt <scdbackup@gmx.net>, provided under GPLv2+ Copyright (C) 2010 - 2013 Thomas Schmitt <scdbackup@gmx.net>
provided under GPLv2+
*/ */
@ -16,25 +17,23 @@
#define BURN_OS_SIGNAL_MACRO_LIST \ #define BURN_OS_SIGNAL_MACRO_LIST \
SIGHUP, SIGINT, SIGQUIT, SIGILL, SIGABRT, \ SIGHUP, SIGINT, SIGQUIT, SIGILL, SIGABRT, \
SIGFPE, SIGSEGV, SIGPIPE, SIGALRM, SIGTERM, \ SIGFPE, SIGSEGV, SIGPIPE, SIGALRM, SIGTERM, \
SIGUSR1, SIGUSR2, SIGXCPU, SIGTSTP, SIGTTIN, \ SIGUSR1, SIGUSR2, SIGXCPU
SIGTTOU
/* Once as text 1:1 list of strings for messages and interpreters */ /* Once as text 1:1 list of strings for messages and interpreters */
#define BURN_OS_SIGNAL_NAME_LIST \ #define BURN_OS_SIGNAL_NAME_LIST \
"SIGHUP", "SIGINT", "SIGQUIT", "SIGILL", "SIGABRT", \ "SIGHUP", "SIGINT", "SIGQUIT", "SIGILL", "SIGABRT", \
"SIGFPE", "SIGSEGV", "SIGPIPE", "SIGALRM", "SIGTERM", \ "SIGFPE", "SIGSEGV", "SIGPIPE", "SIGALRM", "SIGTERM", \
"SIGUSR1", "SIGUSR2", "SIGXCPU", "SIGTSTP", "SIGTTIN", \ "SIGUSR1", "SIGUSR2", "SIGXCPU"
"SIGTTOU"
/* The number of above list items */ /* The number of above list items */
#define BURN_OS_SIGNAL_COUNT 16 #define BURN_OS_SIGNAL_COUNT 13
/** To list all signals which shall surely not be caught */ /** To list all signals which shall surely not be caught */
#define BURN_OS_NON_SIGNAL_MACRO_LIST \ #define BURN_OS_NON_SIGNAL_MACRO_LIST \
SIGKILL, SIGCHLD, SIGSTOP, SIGURG, SIGWINCH SIGKILL, SIGCHLD, SIGSTOP, SIGTSTP, SIGCONT, SIGTTIN, SIGTTOU, SIGURG, SIGWINCH
/* The number of above list items */ /* The number of above list items */
#define BURN_OS_NON_SIGNAL_COUNT 5 #define BURN_OS_NON_SIGNAL_COUNT 9
/* The maximum size for a (SCSI) i/o transaction */ /* The maximum size for a (SCSI) i/o transaction */