diff options
| author | Mark Wielaard <[email protected]> | 2014-12-09 13:43:58 +0100 |
|---|---|---|
| committer | Mark Wielaard <[email protected]> | 2014-12-12 13:04:19 +0100 |
| commit | 16f08ebdb854296e78e6ae42f7f9de3858f19f6c (patch) | |
| tree | b88f986f63ea20abe16232ab10110affef5ca6ca /libelf | |
| parent | e2bde259624800165c8e3d3e54260b7fbe304333 (diff) | |
libelf: Make sure n * w doesn't overflow in elf_getarsym.
Signed-off-by: Mark Wielaard <[email protected]>
Diffstat (limited to 'libelf')
| -rw-r--r-- | libelf/ChangeLog | 4 | ||||
| -rw-r--r-- | libelf/elf_getarsym.c | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/libelf/ChangeLog b/libelf/ChangeLog index e03ee09f..4860530b 100644 --- a/libelf/ChangeLog +++ b/libelf/ChangeLog @@ -1,3 +1,7 @@ +2014-12-09 Mark Wielaard <[email protected]> + + * elf_getarsym.c (elf_getarsym): Make sure n * w doesn't overflow. + 2014-11-27 Mark Wielaard <[email protected]> * Makefile.am (libelf.so): Use textrel_check. diff --git a/libelf/elf_getarsym.c b/libelf/elf_getarsym.c index 7325190a..ba88aa0a 100644 --- a/libelf/elf_getarsym.c +++ b/libelf/elf_getarsym.c @@ -186,7 +186,7 @@ elf_getarsym (elf, ptr) #if SIZE_MAX <= 4294967295U || n >= SIZE_MAX / sizeof (Elf_Arsym) #endif - || n * w > index_size) + || n > index_size / w) { /* This index table cannot be right since it does not fit into the file. */ |
