asan: uninitialised write in bfd_mach_o_write_contents

* mach-o.c (bfd_mach_o_write_contents): Always set
	bfd_mach_o_dyld_info_command *_off fields.
This commit is contained in:
Alan Modra
2022-06-04 18:31:54 +09:30
parent ac3afe36d7
commit 21aacea42e

View File

@ -2656,31 +2656,16 @@ bfd_mach_o_write_contents (bfd *abfd)
{ {
bfd_mach_o_dyld_info_command *di = &cmd->command.dyld_info; bfd_mach_o_dyld_info_command *di = &cmd->command.dyld_info;
if (di->rebase_size != 0) di->rebase_off = di->rebase_size != 0 ? mdata->filelen : 0;
{ mdata->filelen += di->rebase_size;
di->rebase_off = mdata->filelen; di->bind_off = di->bind_size != 0 ? mdata->filelen : 0;
mdata->filelen += di->rebase_size; mdata->filelen += di->bind_size;
} di->weak_bind_off = di->weak_bind_size != 0 ? mdata->filelen : 0;
if (di->bind_size != 0) mdata->filelen += di->weak_bind_size;
{ di->lazy_bind_off = di->lazy_bind_size != 0 ? mdata->filelen : 0;
di->bind_off = mdata->filelen; mdata->filelen += di->lazy_bind_size;
mdata->filelen += di->bind_size; di->export_off = di->export_size != 0 ? mdata->filelen : 0;
} mdata->filelen += di->export_size;
if (di->weak_bind_size != 0)
{
di->weak_bind_off = mdata->filelen;
mdata->filelen += di->weak_bind_size;
}
if (di->lazy_bind_size != 0)
{
di->lazy_bind_off = mdata->filelen;
mdata->filelen += di->lazy_bind_size;
}
if (di->export_size != 0)
{
di->export_off = mdata->filelen;
mdata->filelen += di->export_size;
}
} }
break; break;
case BFD_MACH_O_LC_LOAD_DYLIB: case BFD_MACH_O_LC_LOAD_DYLIB: