mb_dt_offsets.clear() prevents undef from corrupted input
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66344&q=label%3AProj-upx modified: p_lx_elf.cpp
This commit is contained in:
parent
a831a20910
commit
548227a55b
@ -1989,6 +1989,7 @@ void
|
|||||||
PackLinuxElf32::sort_DT32_offsets(Elf32_Dyn const *const dynp0)
|
PackLinuxElf32::sort_DT32_offsets(Elf32_Dyn const *const dynp0)
|
||||||
{
|
{
|
||||||
mb_dt_offsets.alloc(sizeof(unsigned) * sizeof(dt_keys)/sizeof(dt_keys[0]));
|
mb_dt_offsets.alloc(sizeof(unsigned) * sizeof(dt_keys)/sizeof(dt_keys[0]));
|
||||||
|
mb_dt_offsets.clear();
|
||||||
dt_offsets = (unsigned *)mb_dt_offsets.getVoidPtr();
|
dt_offsets = (unsigned *)mb_dt_offsets.getVoidPtr();
|
||||||
unsigned n_off = 0, k;
|
unsigned n_off = 0, k;
|
||||||
for (unsigned j=0; ((k = dt_keys[j]), k); ++j) {
|
for (unsigned j=0; ((k = dt_keys[j]), k); ++j) {
|
||||||
@ -7909,6 +7910,7 @@ void
|
|||||||
PackLinuxElf64::sort_DT64_offsets(Elf64_Dyn const *const dynp0)
|
PackLinuxElf64::sort_DT64_offsets(Elf64_Dyn const *const dynp0)
|
||||||
{
|
{
|
||||||
mb_dt_offsets.alloc(sizeof(unsigned) * sizeof(dt_keys)/sizeof(dt_keys[0]));
|
mb_dt_offsets.alloc(sizeof(unsigned) * sizeof(dt_keys)/sizeof(dt_keys[0]));
|
||||||
|
mb_dt_offsets.clear();
|
||||||
dt_offsets = (unsigned *)mb_dt_offsets.getVoidPtr();
|
dt_offsets = (unsigned *)mb_dt_offsets.getVoidPtr();
|
||||||
unsigned n_off = 0, k;
|
unsigned n_off = 0, k;
|
||||||
for (unsigned j=0; ((k = dt_keys[j]), k); ++j) {
|
for (unsigned j=0; ((k = dt_keys[j]), k); ++j) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user