blob: a9ea57963995e6064cc83b9e3859cff794936273 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
elf->data is 'signed char' and casting it to 'int' will sign extend.
Most non-intrusive fix is to just have get_elfeitype() take type as
'unsigned char' to make implicit cast.
diff -ru pax-utils-1.2.2.orig/paxelf.c pax-utils-1.2.2/paxelf.c
--- pax-utils-1.2.2.orig/paxelf.c 2017-01-24 20:24:53.000000000 +0000
+++ pax-utils-1.2.2/paxelf.c 2017-09-26 07:01:00.115498082 +0000
@@ -65,7 +65,7 @@
QUERY(ELFOSABI_STANDALONE),
{ 0, 0 }
};
-const char *get_elfeitype(int ei_type, int type)
+const char *get_elfeitype(int ei_type, unsigned char type)
{
switch (ei_type) {
case EI_CLASS: return find_pairtype(elf_ei_class, type);
diff -ru pax-utils-1.2.2.orig/paxelf.h pax-utils-1.2.2/paxelf.h
--- pax-utils-1.2.2.orig/paxelf.h 2017-01-24 20:24:53.000000000 +0000
+++ pax-utils-1.2.2/paxelf.h 2017-09-26 07:00:44.941879820 +0000
@@ -56,7 +56,7 @@
extern elfobj *_readelf(const char *filename, int read_only);
#define readelf(filename) _readelf(filename, 1)
extern void unreadelf(elfobj *elf);
-extern const char *get_elfeitype(int ei_type, int type);
+extern const char *get_elfeitype(int ei_type, unsigned char type);
extern const char *get_elfetype(const elfobj *elf);
extern const char *get_endian(const elfobj *elf);
extern const char *get_elfosabi(const elfobj *elf);
|