summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorDaniel Müller <deso@posteo.net>2023-03-07 21:55:04 +0000
committerAndrii Nakryiko <andrii@kernel.org>2023-03-07 15:30:47 -0800
commit3ecde2182adbb12b52b777d8fb4a599b43faf4f1 (patch)
tree365403d9b978bcf7f1265d20d316a1b49b11c99e /tools
parenta73dc912aa7e43f4f12003a26aeab839b500b86d (diff)
libbpf: Fix theoretical u32 underflow in find_cd() function
Coverity reported a potential underflow of the offset variable used in the find_cd() function. Switch to using a signed 64 bit integer for the representation of offset to make sure we can never underflow. Fixes: 1eebcb60633f ("libbpf: Implement basic zip archive parsing support") Signed-off-by: Daniel Müller <deso@posteo.net> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/bpf/20230307215504.837321-1-deso@posteo.net
Diffstat (limited to 'tools')
-rw-r--r--tools/lib/bpf/zip.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/tools/lib/bpf/zip.c b/tools/lib/bpf/zip.c
index 8458c2dd0e3b..f561aa07438f 100644
--- a/tools/lib/bpf/zip.c
+++ b/tools/lib/bpf/zip.c
@@ -168,9 +168,8 @@ static int try_parse_end_of_cd(struct zip_archive *archive, __u32 offset)
static int find_cd(struct zip_archive *archive)
{
+ int64_t limit, offset;
int rc = -EINVAL;
- int64_t limit;
- __u32 offset;
if (archive->size <= sizeof(struct end_of_cd_record))
return -EINVAL;