mirror of
https://github.com/xen-project/xen.git
synced 2026-10-30 03:00:05 +01:00
libelf: abolish elf_sval and elf_access_signed
These are not used anywhere. This is part of the fix to a security issue, XSA-55. Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> Reviewed-by: Chuck Anderson <chuck.anderson@oracle.com>
This commit is contained in:
1 parent
009ddca515
commit
13e2c808f7
2 files changed
-39
No files matched your search
@@ -48,34 +48,6 @@ uint64_t elf_access_unsigned(struct elf_binary * elf, const void *ptr,
|
||||
}
|
||||
}
|
||||
|
||||
int64_t elf_access_signed(struct elf_binary *elf, const void *ptr,
|
||||
uint64_t offset, size_t size)
|
||||
{
|
||||
int need_swap = elf_swap(elf);
|
||||
const int8_t *s8;
|
||||
const int16_t *s16;
|
||||
const int32_t *s32;
|
||||
const int64_t *s64;
|
||||
|
||||
switch ( size )
|
||||
{
|
||||
case 1:
|
||||
s8 = ptr + offset;
|
||||
return *s8;
|
||||
case 2:
|
||||
s16 = ptr + offset;
|
||||
return need_swap ? bswap_16(*s16) : *s16;
|
||||
case 4:
|
||||
s32 = ptr + offset;
|
||||
return need_swap ? bswap_32(*s32) : *s32;
|
||||
case 8:
|
||||
s64 = ptr + offset;
|
||||
return need_swap ? bswap_64(*s64) : *s64;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
uint64_t elf_round_up(struct elf_binary *elf, uint64_t addr)
|
||||
{
|
||||
int elf_round = (elf_64bit(elf) ? 8 : 4) - 1;
|
||||
|
||||
@@ -136,23 +136,12 @@ struct elf_binary {
|
||||
offsetof(typeof(*(str)),e32.elem), \
|
||||
sizeof((str)->e32.elem)))
|
||||
|
||||
#define elf_sval(elf, str, elem) \
|
||||
((ELFCLASS64 == (elf)->class) \
|
||||
? elf_access_signed((elf), (str), \
|
||||
offsetof(typeof(*(str)),e64.elem), \
|
||||
sizeof((str)->e64.elem)) \
|
||||
: elf_access_signed((elf), (str), \
|
||||
offsetof(typeof(*(str)),e32.elem), \
|
||||
sizeof((str)->e32.elem)))
|
||||
|
||||
#define elf_size(elf, str) \
|
||||
((ELFCLASS64 == (elf)->class) \
|
||||
? sizeof((str)->e64) : sizeof((str)->e32))
|
||||
|
||||
uint64_t elf_access_unsigned(struct elf_binary *elf, const void *ptr,
|
||||
uint64_t offset, size_t size);
|
||||
int64_t elf_access_signed(struct elf_binary *elf, const void *ptr,
|
||||
uint64_t offset, size_t size);
|
||||
|
||||
uint64_t elf_round_up(struct elf_binary *elf, uint64_t addr);
|
||||
|
||||
|
||||