From: James Jones Date: Tue, 31 Jan 2023 15:03:30 +0000 (-0600) Subject: Start using modeling for Coverity (#4853) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1f75f9495ddf403b4dd35fbda1b093a8ea6f67ff;p=thirdparty%2Ffreeradius-server.git Start using modeling for Coverity (#4853) This involves * making the coverity workflow build the model * adding model source file(s) --- diff --git a/.github/workflows/coverity.yml b/.github/workflows/coverity.yml index 04314fe193a..cca531c0f43 100644 --- a/.github/workflows/coverity.yml +++ b/.github/workflows/coverity.yml @@ -66,6 +66,8 @@ jobs: export CC=clang export PATH=`pwd`/coverity_tool/bin:$PATH ./configure -with-rlm-python-bin=/usr/bin/python2.7 + mkdir coverity_tool/config + cov-make-library --compiler-opt -I --compiler-opt src/freeradius-devel src/coverity-model/* cov-configure --template --compiler clang --comptype clangcc cov-build --dir cov-int make diff --git a/src/coverity-model/exfile.c b/src/coverity-model/exfile.c new file mode 100644 index 00000000000..cbc447b5e71 --- /dev/null +++ b/src/coverity-model/exfile.c @@ -0,0 +1,27 @@ +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +int exfile_open(exfile_t *ef, char const *filename, mode_t permissions, off_t *offset) +{ + int result; + + if (ef->locking && result > 0) __coverity_exclusive_lock_acquire__(ef->mutex); + return result; +} + +int exfile_close(exfile_t *ef, int fd) +{ + int result; + + if (ef->locking) __coverity_exclusive_lock_release__(ef->mutex); + return result; +} diff --git a/src/coverity-model/pool.c b/src/coverity-model/pool.c new file mode 100644 index 00000000000..e1713d7a079 --- /dev/null +++ b/src/coverity-model/pool.c @@ -0,0 +1,24 @@ +#include +#include +#include + +#include +#include + +#include + +static fr_pool_connection_t *connection_spawn(fr_pool_t *pool, request_t *request, fr_time_t now, bool in_use, bool unlock) +{ + fr_pool_connection_t *result; + + if (result && !unlock) __coverity_exclusive_lock_acquire__(pool->mutex); + return result; +} + +static fr_pool_connection_t *connection_find(fr_pool_t *pool, void *conn) +{ + fr_pool_connection_t *result; + + if (result) __coverity_exclusive_lock_acquire__(pool->mutex); + return result; +}