aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x.github/workflows/pull_request.sh18
-rw-r--r--.github/workflows/pull_request.yml19
-rw-r--r--lib/libvfio-user.c2
-rw-r--r--lib/tran_pipe.c4
-rw-r--r--samples/client.c22
-rw-r--r--test/unit-tests.c2
6 files changed, 40 insertions, 27 deletions
diff --git a/.github/workflows/pull_request.sh b/.github/workflows/pull_request.sh
index 20b8ace..b972bda 100755
--- a/.github/workflows/pull_request.sh
+++ b/.github/workflows/pull_request.sh
@@ -1,5 +1,7 @@
#!/bin/sh
+# NB: we can't use "meson compile -v", as centos 7 doesn't support that option.
+
set -e
set -v
@@ -8,23 +10,29 @@ test -z "$BUILD" && BUILD=build
rm -rf $BUILD
# ASAN build with clang
-CC=clang meson $BUILD/asan -Db_sanitize=address -Db_lundef=false
+CC=clang meson setup $BUILD/asan -Db_sanitize=address -Db_lundef=false
ninja -C $BUILD/asan -v
meson test -C $BUILD/asan --suite style --print-errorlogs
meson test -C $BUILD/asan --no-suite style --print-errorlogs
+# analyzer build
+meson setup $BUILD/scan-build -Dtran-pipe=true
+# no "meson scan-build" for some reason
+ninja -C $BUILD/scan-build -v scan-build -v
+meson test -C $BUILD/scan-build --no-suite style --print-errorlogs
+
# debug build with clang
-CC=clang meson build/clang-debug -Dtran-pipe=true
+CC=clang meson setup build/clang-debug -Dtran-pipe=true
ninja -C $BUILD/clang-debug -v
meson test -C $BUILD/clang-debug --no-suite style --print-errorlogs
# release build with clang
-CC=clang meson build/clang-release -Dtran-pipe=true -Dbuildtype=release
+CC=clang meson setup build/clang-release -Dtran-pipe=true -Dbuildtype=release
ninja -C $BUILD/clang-release -v
meson test -C $BUILD/clang-release --no-suite style --print-errorlogs
# debug build with gcc
-CC=gcc meson build/gcc-debug -Dtran-pipe=true
+CC=gcc meson setup build/gcc-debug -Dtran-pipe=true
ninja -C $BUILD/gcc-debug -v
meson test -C $BUILD/gcc-debug --no-suite style --print-errorlogs
@@ -34,6 +42,6 @@ meson test -C $BUILD/gcc-debug --suite pyunit --setup pyvalgrind --print-errorlo
DESTDIR=tmp.install meson install -C $BUILD/gcc-debug
# release build with gcc
-CC=gcc meson build/gcc-release -Dtran-pipe=true -Dbuildtype=release
+CC=gcc meson setup build/gcc-release -Dtran-pipe=true -Dbuildtype=release
ninja -C $BUILD/gcc-release -v
meson test -C $BUILD/gcc-release --no-suite style --print-errorlogs
diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml
index e905dd5..2b3b910 100644
--- a/.github/workflows/pull_request.yml
+++ b/.github/workflows/pull_request.yml
@@ -9,9 +9,9 @@ jobs:
- name: pre-push
run: |
sudo apt-get update
- sudo apt-get -y install libjson-c-dev libcmocka-dev clang valgrind \
- python3-pytest debianutils flake8 meson \
- ninja-build
+ sudo apt-get -y install libjson-c-dev libcmocka-dev clang \
+ clang-tools valgrind python3-pytest debianutils flake8 meson \
+ ninja-build
./.github/workflows/pull_request.sh
ubuntu-22:
timeout-minutes: 10
@@ -21,9 +21,9 @@ jobs:
- name: pre-push
run: |
sudo apt-get update
- sudo apt-get -y install libjson-c-dev libcmocka-dev clang valgrind \
- python3-pytest debianutils flake8 meson \
- ninja-build
+ sudo apt-get -y install libjson-c-dev libcmocka-dev clang \
+ clang-tools valgrind python3-pytest debianutils flake8 meson \
+ ninja-build
./.github/workflows/pull_request.sh
centos-7:
timeout-minutes: 10
@@ -35,7 +35,7 @@ jobs:
run: |
# NB: no working flake8
yum -y install make gcc-4.8.5 epel-release pciutils
- yum -y install clang json-c-devel libcmocka-devel \
+ yum -y install clang clang-analyzer json-c-devel libcmocka-devel \
valgrind python36-pytest which ninja-build meson
./.github/workflows/pull_request.sh
fedora-35:
@@ -47,6 +47,7 @@ jobs:
- name: pre-push
run: |
dnf -y install --releasever=35 \
- gcc make clang json-c-devel libcmocka-devel pciutils diffutils \
- valgrind python3-pytest python3-flake8 which meson ninja-build
+ gcc make clang clang-analyzer json-c-devel libcmocka-devel pciutils \
+ diffutils valgrind python3-pytest python3-flake8 which \
+ meson ninja-build
./.github/workflows/pull_request.sh
diff --git a/lib/libvfio-user.c b/lib/libvfio-user.c
index 5b95865..fd2465d 100644
--- a/lib/libvfio-user.c
+++ b/lib/libvfio-user.c
@@ -469,7 +469,7 @@ vfu_create_ioeventfd(vfu_ctx_t *vfu_ctx, uint32_t region_idx, int fd,
size_t offset, uint32_t size, uint32_t flags,
uint64_t datamatch)
{
- vfu_reg_info_t *vfu_reg = &vfu_ctx->reg_info[region_idx];
+ vfu_reg_info_t *vfu_reg;
assert(vfu_ctx != NULL);
assert(fd >= 0);
diff --git a/lib/tran_pipe.c b/lib/tran_pipe.c
index 34dd075..dea2c3c 100644
--- a/lib/tran_pipe.c
+++ b/lib/tran_pipe.c
@@ -73,6 +73,10 @@ tran_pipe_send_iovec(int fd, uint16_t msg_id, bool is_reply,
ret = writev(fd, iovecs, nr_iovecs);
+ /* Quieten static analysis. */
+ iovecs[0].iov_base = NULL;
+ iovecs[0].iov_len = 0;
+
if (ret == -1) {
/* Treat a failed write due to EPIPE the same as a short write. */
if (errno == EPIPE) {
diff --git a/samples/client.c b/samples/client.c
index 9f4a42b..492dd18 100644
--- a/samples/client.c
+++ b/samples/client.c
@@ -78,20 +78,20 @@ vfu_log(UNUSED vfu_ctx_t *vfu_ctx, UNUSED int level,
static int
init_sock(const char *path)
{
- int ret, sock;
- struct sockaddr_un addr = {.sun_family = AF_UNIX};
+ struct sockaddr_un addr = {.sun_family = AF_UNIX};
+ int sock;
- /* TODO path should be defined elsewhere */
- ret = snprintf(addr.sun_path, sizeof(addr.sun_path), "%s", path);
+ /* TODO path should be defined elsewhere */
+ snprintf(addr.sun_path, sizeof(addr.sun_path), "%s", path);
- if ((sock = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) {
- err(EXIT_FAILURE, "failed to open socket %s", path);
- }
+ if ((sock = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) {
+ err(EXIT_FAILURE, "failed to open socket %s", path);
+ }
- if ((ret = connect(sock, (struct sockaddr*)&addr, sizeof(addr))) == -1) {
- err(EXIT_FAILURE, "failed to connect server");
- }
- return sock;
+ if (connect(sock, (struct sockaddr*)&addr, sizeof(addr)) == -1) {
+ err(EXIT_FAILURE, "failed to connect server");
+ }
+ return sock;
}
static void
diff --git a/test/unit-tests.c b/test/unit-tests.c
index 81288e2..7d5297e 100644
--- a/test/unit-tests.c
+++ b/test/unit-tests.c
@@ -314,8 +314,8 @@ static void
test_dma_addr_to_sg(void **state UNUSED)
{
dma_memory_region_t *r, *r1;
+ struct iovec iov[2] = { };
dma_sg_t sg[2];
- struct iovec iov[2];
int ret;
vfu_ctx.dma->nregions = 1;