summaryrefslogtreecommitdiffstats
path: root/libelf/version_xlate.h
diff options
context:
space:
mode:
Diffstat (limited to 'libelf/version_xlate.h')
-rw-r--r--libelf/version_xlate.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/libelf/version_xlate.h b/libelf/version_xlate.h
index 935f77ab..16eaa19c 100644
--- a/libelf/version_xlate.h
+++ b/libelf/version_xlate.h
@@ -61,7 +61,7 @@ elf_cvt_Verdef (void *dest, const void *src, size_t len, int encode)
GElf_Verdaux *asrc;
/* Test for correct offset. */
- if (def_offset + sizeof (GElf_Verdef) > len)
+ if (def_offset > len || len - def_offset < sizeof (GElf_Verdef))
return;
/* Work the tree from the first record. */
@@ -90,7 +90,7 @@ elf_cvt_Verdef (void *dest, const void *src, size_t len, int encode)
GElf_Verdaux *adest;
/* Test for correct offset. */
- if (aux_offset + sizeof (GElf_Verdaux) > len)
+ if (aux_offset > len || len - aux_offset < sizeof (GElf_Verdaux))
return;
adest = (GElf_Verdaux *) ((char *) dest + aux_offset);
@@ -155,7 +155,7 @@ elf_cvt_Verneed (void *dest, const void *src, size_t len, int encode)
GElf_Vernaux *asrc;
/* Test for correct offset. */
- if (need_offset + sizeof (GElf_Verneed) > len)
+ if (need_offset > len || len - need_offset < sizeof (GElf_Verneed))
return;
/* Work the tree from the first record. */
@@ -182,7 +182,7 @@ elf_cvt_Verneed (void *dest, const void *src, size_t len, int encode)
GElf_Vernaux *adest;
/* Test for correct offset. */
- if (aux_offset + sizeof (GElf_Vernaux) > len)
+ if (aux_offset > len || len - aux_offset < sizeof (GElf_Vernaux))
return;
adest = (GElf_Vernaux *) ((char *) dest + aux_offset);