*srcp = src;
*valuep = value;
- return len == 0;
+ return len == -1U;
}
static bfd_boolean
dstp[i] = 0;
*srcp = src + i;
*lenp = len;
- return TRUE;
+ return i == len;
}
static struct data_struct *
return FALSE;
}
alt_section = NULL;
- while (*src)
+ while (src < src_end && *src)
{
switch (*src)
{
return FALSE;
if (!getvalue (&src, &val, src_end))
return FALSE;
+ if (val < section->vma)
+ val = section->vma;
section->size = val - section->vma;
+ /* PR 17512: file: objdump-s-endless-loop.tekhex.
+ Check for overlarge section sizes. */
+ if (section->size & 0x80000000)
+ return FALSE;
section->flags = SEC_HAS_CONTENTS | SEC_LOAD | SEC_ALLOC;
break;
case '0':