mirror of
https://github.com/netdata/libbpf.git
synced 2026-04-05 08:09:07 +08:00
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
This commit is contained in:
committed by
Andrii Nakryiko
parent
cc7177624f
commit
232f42135a
@@ -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)
|
static int find_cd(struct zip_archive *archive)
|
||||||
{
|
{
|
||||||
|
int64_t limit, offset;
|
||||||
int rc = -EINVAL;
|
int rc = -EINVAL;
|
||||||
int64_t limit;
|
|
||||||
__u32 offset;
|
|
||||||
|
|
||||||
if (archive->size <= sizeof(struct end_of_cd_record))
|
if (archive->size <= sizeof(struct end_of_cd_record))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|||||||
Reference in New Issue
Block a user