]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
mutexes near returns (CID #1551697, #1551698)
authorJames Jones <jejones3141@gmail.com>
Wed, 22 Nov 2023 18:56:30 +0000 (12:56 -0600)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 25 Jan 2024 19:49:06 +0000 (13:49 -0600)
1551697 Guard reference to is_exiting if HAVE_PTHREADS defined
1551698 Annotate leaving exfiles opened for exclusive use locked

src/lib/server/exfile.c
src/lib/util/atexit.c

index 908c0daa957c777eb91c6205204611381286aa7c..421ff39cb7022cac8029aae645eb5bec9663d6bb 100644 (file)
@@ -485,6 +485,7 @@ try_lock:
 
        exfile_trigger_exec(ef, &ef->entries[i], "reserve");
 
+       /* coverity[missing_unlock] */
        return ef->entries[i].fd;
 }
 
index 2db9335f4a1be88bfefd5572448c447fb2a4e38f..71181a0586e3e2077149f13d6afe0c7ef2370090 100644 (file)
@@ -411,7 +411,17 @@ do_threads:
  */
 bool fr_atexit_is_exiting(void)
 {
+#ifdef HAVE_PTHREADS
+       bool save_is_exiting;
+
+       pthread_mutex_lock(&fr_atexit_global_mutex);
+       save_is_exiting = is_exiting;
+       pthread_mutex_unlock(&fr_atexit_global_mutex);
+
+       return save_is_exiting;
+#else
        return is_exiting;
+#endif
 }
 
 #ifdef HAVE_PTHREADS