[PATCH] Enable _FORTIFY_SOURCE and stack protector checking
[fio.git] / fio.c
diff --git a/fio.c b/fio.c
index 127314e3590bd1efd79908eeb5363c5580afef86..0b0a5e8e540851e032e0004e23175b7cfcd798e3 100644 (file)
--- a/fio.c
+++ b/fio.c
@@ -82,11 +82,6 @@ static void sig_handler(int sig)
                        disk_util_timer_arm();
                        print_thread_status();
                        break;
-               case SIGSEGV:
-                       fprintf(stderr, "fio: got segfault, aborting\n");
-                       terminate_threads(TERMINATE_ALL, 1);
-                       fio_abort = 1;
-                       exit(0);
                default:
                        printf("\nfio: terminating on signal %d\n", sig);
                        fflush(stdout);
@@ -695,8 +690,10 @@ static void *thread_main(void *data)
        if (td_io_init(td))
                goto err;
 
-       if (td->exec_prerun)
-               system(td->exec_prerun);
+       if (td->exec_prerun) {
+               if (system(td->exec_prerun) < 0)
+                       goto err;
+       }
 
        fio_gettime(&td->epoch, NULL);
        getrusage(RUSAGE_SELF, &td->ru_start);
@@ -751,8 +748,10 @@ static void *thread_main(void *data)
                finish_log(td, td->clat_log, "clat");
        if (td->write_iolog_file)
                write_iolog_close(td);
-       if (td->exec_postrun)
-               system(td->exec_postrun);
+       if (td->exec_postrun) {
+               if (system(td->exec_postrun) < 0)
+                       log_err("fio: postrun %s failed\n", td->exec_postrun);
+       }
 
        if (exitall_on_terminate)
                terminate_threads(td->groupid, 0);