aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Levon <john.levon@nutanix.com>2024-08-19 11:43:44 +0100
committerGitHub <noreply@github.com>2024-08-19 11:43:44 +0100
commit3f1500b384cd5aca13b517ebd4055727f35dc14f (patch)
tree44e6318073354df68d0f76244af4b67b4e326c94
parenta5fca05211a15743ecbc5b375048325d2746d758 (diff)
downloadlibvfio-user-3f1500b384cd5aca13b517ebd4055727f35dc14f.zip
libvfio-user-3f1500b384cd5aca13b517ebd4055727f35dc14f.tar.gz
libvfio-user-3f1500b384cd5aca13b517ebd4055727f35dc14f.tar.bz2
samples: keep coverity quiet (#804)
>>> CID 467268: (INTEGER_OVERFLOW) >>> Expression "32UL + bitmap_size", which is equal to 31, where "bitmap_size" is known to be equal to 18446744073709551615, overflows the type that receives it, an unsigned integer 64 bits wide. 824 size_t size = sizeof(*res) + sizeof(*report) + bitmap_size; It's correct, this could overflow, though as this is example code, it doesn't matter. Nonetheless let's make this be a saturating add. Signed-off-by: John Levon <john.levon@nutanix.com>
-rw-r--r--samples/client.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/samples/client.c b/samples/client.c
index e8b737f..7e6721f 100644
--- a/samples/client.c
+++ b/samples/client.c
@@ -821,7 +821,8 @@ get_dirty_bitmap(int sock, struct client_dma_region *dma_region,
uint64_t bitmap_size = get_bitmap_size(dma_region->map.size,
sysconf(_SC_PAGESIZE));
- size_t size = sizeof(*res) + sizeof(*report) + bitmap_size;
+ /* Saturating add to keep coverity happy. */
+ size_t size = satadd_u64(sizeof(*res) + sizeof(*report), bitmap_size);
void *data = calloc(1, size);
assert(data != NULL);