diff options
author | Jakub Jelinek <jakub@redhat.com> | 2014-01-17 20:38:01 +0100 |
---|---|---|
committer | Mark Wielaard <mjw@redhat.com> | 2014-01-23 11:31:53 +0100 |
commit | a9039623c272f458a53f09009c2a0e1d6e60491d (patch) | |
tree | 89fbb96c4a083aaecf960871e02a4fd99085245f /libelf/gelf_update_syminfo.c | |
parent | 720383c53b435de6647edd78060dd7d38ade25a5 (diff) | |
download | elfutils-a9039623c272f458a53f09009c2a0e1d6e60491d.tar.gz |
robustify: libelf gelf define INVALID_NDX macro.
Signed-off-by: Mark Wielaard <mjw@redhat.com>
Diffstat (limited to 'libelf/gelf_update_syminfo.c')
-rw-r--r-- | libelf/gelf_update_syminfo.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/libelf/gelf_update_syminfo.c b/libelf/gelf_update_syminfo.c index 5654a0d9..640a1ed2 100644 --- a/libelf/gelf_update_syminfo.c +++ b/libelf/gelf_update_syminfo.c @@ -1,5 +1,5 @@ /* Update additional symbol information 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. @@ -51,12 +51,6 @@ gelf_update_syminfo (data, ndx, src) if (data == NULL) return 0; - if (unlikely (ndx < 0)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - return 0; - } - if (unlikely (data_scn->d.d_type != ELF_T_SYMINFO)) { /* The type of the data better should match. */ @@ -72,7 +66,7 @@ gelf_update_syminfo (data, ndx, src) rwlock_wrlock (scn->elf->lock); /* Check whether we have to resize the data buffer. */ - if (unlikely ((ndx + 1) * sizeof (GElf_Syminfo) > data_scn->d.d_size)) + if (INVALID_NDX (ndx, GElf_Syminfo, &data_scn->d)) { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; |