From 85d67a9393323cc7367a44497fa2a9faf7453633 Mon Sep 17 00:00:00 2001 From: simon987 Date: Sun, 5 Sep 2021 20:03:42 -0400 Subject: [PATCH] null checks in sig_handler --- src/ctx.c | 2 ++ src/main.c | 46 +++++++++++++++++++++++++++------------------- 2 files changed, 29 insertions(+), 19 deletions(-) diff --git a/src/ctx.c b/src/ctx.c index 4f5fc32..d6ee8ec 100644 --- a/src/ctx.c +++ b/src/ctx.c @@ -2,6 +2,8 @@ ScanCtx_t ScanCtx = { .stat_index_size = 0, + .dbg_current_files = NULL, + .pool = NULL }; WebCtx_t WebCtx; IndexCtx_t IndexCtx; diff --git a/src/main.c b/src/main.c index 5c5eaae..8b46875 100644 --- a/src/main.c +++ b/src/main.c @@ -43,30 +43,38 @@ void sig_handler(int signum) { LOG_ERROR("*SIGNAL HANDLER*", "=============================================\n\n"); LOG_ERRORF("*SIGNAL HANDLER*", "Uh oh! Caught fatal signal: %s", strsignal(signum)); - GHashTableIter iter; - g_hash_table_iter_init(&iter, ScanCtx.dbg_current_files); + if (ScanCtx.dbg_current_files != NULL) { + GHashTableIter iter; + g_hash_table_iter_init(&iter, ScanCtx.dbg_current_files); - void *key; - void *value; - while (g_hash_table_iter_next(&iter, &key, &value)) { - parse_job_t *job = value; + void *key; + void *value; + while (g_hash_table_iter_next(&iter, &key, &value)) { + parse_job_t *job = value; - if (isatty(STDERR_FILENO)) { - LOG_DEBUGF( - "*SIGNAL HANDLER*", - "Thread \033[%dm[%04llX]\033[0m was working on job '%s'", - 31 + ((unsigned int) key) % 7, key, job->filepath - ); - } else { - LOG_DEBUGF( - "*SIGNAL HANDLER*", - "THREAD [%04llX] was working on job %s", - key, job->filepath - ); + if (isatty(STDERR_FILENO)) { + LOG_DEBUGF( + "*SIGNAL HANDLER*", + "Thread \033[%dm[%04llX]\033[0m was working on job '%s'", + 31 + ((unsigned int) key) % 7, key, job->filepath + ); + } else { + LOG_DEBUGF( + "*SIGNAL HANDLER*", + "THREAD [%04llX] was working on job %s", + key, job->filepath + ); + } } } - tpool_dump_debug_info(ScanCtx.pool); + if (ScanCtx.pool != NULL) { + tpool_dump_debug_info(ScanCtx.pool); + } + + if (IndexCtx.pool != NULL) { + tpool_dump_debug_info(IndexCtx.pool); + } LOG_INFO( "*SIGNAL HANDLER*",