[svn-r17667] Bug 1656 fix:

added a signal handler to the tcheck_version to intercept the abort signal from
H5check_version.  Some systems would prints extra messages and/or core dump if
the abort signal is not handled. This eliminates those unwanted side effect.

Tested: h5committested.
This commit is contained in:
Albert Cheng 2009-10-17 23:51:20 -05:00
parent dfb22d02b0
commit a7db9a67b5

View File

@ -25,14 +25,19 @@
*
* Programmer: Albert Cheng
* September 20, 2009
* Modifications:
* Added abort signal intercept. AKC - 2009/10/16 -
*/
#include <stdlib.h>
#include "hdf5.h"
#include "h5test.h"
#define progname "tcheck_version"
/* prototypes */
void showhelp(void);
void parse(int ac, char **av);
void abort_intercept (int UNUSED sig);
/* global variables */
unsigned major = H5_VERS_MAJOR;
unsigned minor = H5_VERS_MINOR;
@ -90,10 +95,24 @@ parse(int ac, char **av)
}
}
/* Handler for SIGABRT - catch the abort signal supposedly from check_version()
* and exit(134). 134 would have been the return code in Unix systems.
* This handles the abort signal instead letting it interrupt the OS because
* some systems may produce extra messages and/or produce core dump.
* This tries to eliminate those side effects.
*/
void
abort_intercept (int UNUSED sig)
{
HDexit(134);
}
int
main(int ac, char **av)
{
parse(ac, av);
HDsignal(SIGABRT, &abort_intercept);
H5check_version(major, minor, release);
HDsignal(SIGABRT, SIG_DFL);
return 0;
}