diff options
author | Daniel Müller | 2023-03-07 21:55:04 +0000 |
---|---|---|
committer | Andrii Nakryiko | 2023-03-07 15:30:47 -0800 |
commit | 3ecde2182adbb12b52b777d8fb4a599b43faf4f1 (patch) | |
tree | 365403d9b978bcf7f1265d20d316a1b49b11c99e /tools | |
parent | a73dc912aa7e43f4f12003a26aeab839b500b86d (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.c | 3 |
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; |