changeset 923:bcba57cc349c

removed uncatchable signal action
author thomask
date Sun, 19 Mar 2006 15:16:42 +0000
parents 95160f4d06f8
children 1d892841fc86
files crashRun.c
diffstat 1 files changed, 8 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/crashRun.c	Sun Mar 19 15:16:13 2006 +0000
+++ b/crashRun.c	Sun Mar 19 15:16:42 2006 +0000
@@ -81,6 +81,8 @@
 #endif
 
 
+char* cmd;
+
 /* let's start implementing :) */
 
 void handleSignal(int signalID){
@@ -173,9 +175,6 @@
 	signal(SIGBUS, &handleSignal);
 #endif
 	signal(SIGFPE, &handleSignal);
-#ifdef SIGKILL
-	signal(SIGKILL, &handleSignal);
-#endif
 #ifdef SIGUSR1
 	signal(SIGUSR1, &handleSignal);
 #endif
@@ -211,11 +210,14 @@
 #endif /* USE_POSIX */
 }
 
+void cleanCommand(){
+	free(cmd);
+}
+
 char* reconstructCmd(int argc, char** argv){
 	size_t cmdLen=1;
 	size_t tmpLen;
 	size_t i;
-	char* cmd;
 	char* tmp;
 
 	for(i=0; i<argc; i++){
@@ -224,6 +226,8 @@
 	}
 
 	cmd = (char*)malloc(cmdLen);
+	atexit(&cleanCommand);
+
 	*cmd = '\x00';
 	tmp = cmd;
 
@@ -236,7 +240,6 @@
 }
 
 int main(int argc, char** argv){
-	char* cmd;
 	if(argc<2){
 		fprintf(stderr, "name of command to call required\n");
 		return EXIT_FAILURE;