/* Update symbol information and section index in symbol table at the
given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
+ Copyright (C) 2000, 2001, 2002, 2005, 2009, 2014 Red Hat, Inc.
This file is part of elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 2000.
if (symdata == NULL)
return 0;
- if (unlikely (ndx < 0))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- return 0;
- }
-
if (unlikely (symdata_scn->d.d_type != ELF_T_SYM))
{
/* The type of the data better should match. */
}
/* Check whether we have to resize the data buffer. */
- if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > symdata_scn->d.d_size))
+ if (INVALID_NDX (ndx, Elf32_Sym, &symdata_scn->d))
{
__libelf_seterrno (ELF_E_INVALID_INDEX);
goto out;
else
{
/* Check whether we have to resize the data buffer. */
- if (unlikely ((ndx + 1) * sizeof (Elf64_Sym) > symdata_scn->d.d_size))
+ if (INVALID_NDX (ndx, Elf64_Sym, &symdata_scn->d))
{
__libelf_seterrno (ELF_E_INVALID_INDEX);
goto out;