/* An end record. */
if (abfd->start_address == 0)
abfd->start_address = addr;
- if (buf != NULL)
- free (buf);
+ free (buf);
return TRUE;
case 2:
if (error)
goto error_return;
- if (buf != NULL)
- free (buf);
-
+ free (buf);
return TRUE;
error_return:
- if (buf != NULL)
- free (buf);
+ free (buf);
return FALSE;
}
if ((bfd_size_type) (p - contents) >= section->size)
{
/* We've read everything in the section. */
- if (buf != NULL)
- free (buf);
+ free (buf);
return TRUE;
}
goto error_return;
}
- if (buf != NULL)
- free (buf);
-
+ free (buf);
return TRUE;
error_return:
- if (buf != NULL)
- free (buf);
+ free (buf);
return FALSE;
}
if (count > CHUNK)
now = CHUNK;
- if (where > segbase + extbase + 0xffff)
+ if (where < extbase
+ || where - extbase < segbase
+ || where - extbase - segbase > 0xffff)
{
bfd_byte addr[2];
/* We need a new base address. */
- if (where <= 0xfffff)
+ if (extbase == 0 && where <= 0xfffff)
{
- /* The addresses should be sorted. */
- BFD_ASSERT (extbase == 0);
-
segbase = where & 0xf0000;
addr[0] = (bfd_byte)(segbase >> 12) & 0xff;
addr[1] = (bfd_byte)(segbase >> 4) & 0xff;