From 598422e7678a719b37cc4221c637b840f4e13fcc Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Sat, 25 May 2024 11:54:14 -0400 Subject: sighook: Allow sigunhook(NULL) --- src/ctx.c | 4 +--- src/sighook.c | 4 ++++ 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/ctx.c b/src/ctx.c index fac501a..0f619c2 100644 --- a/src/ctx.c +++ b/src/ctx.c @@ -229,9 +229,7 @@ static int bfs_ctx_fclose(struct bfs_ctx *ctx, struct bfs_ctx_file *ctx_file) { error = errno; } - if (ctx_file->hook) { - sigunhook(ctx_file->hook); - } + sigunhook(ctx_file->hook); // Close the CFILE, except for stdio streams, which are closed later if (cfile != ctx->cout && cfile != ctx->cerr) { diff --git a/src/sighook.c b/src/sighook.c index ff5b96f..ece8147 100644 --- a/src/sighook.c +++ b/src/sighook.c @@ -584,6 +584,10 @@ done: } void sigunhook(struct sighook *hook) { + if (!hook) { + return; + } + mutex_lock(&sigmutex); struct rcu *rcu = hook->sig ? &rcu_sighooks : &rcu_exithooks; -- cgit v1.2.3