summaryrefslogtreecommitdiff
path: root/system/pax-utils/fix-eitype.patch
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2018-06-14 02:22:19 -0500
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2018-06-14 02:22:56 -0500
commitb1eb50599e4db7eb4501af75cbbfa22007081ea5 (patch)
treec94a34c882cc17adedd781e8c5f34349b2a62416 /system/pax-utils/fix-eitype.patch
parentb9e85bbdcf38547ef2ca4e5c2a6e6293bbcd2752 (diff)
downloadpackages-b1eb50599e4db7eb4501af75cbbfa22007081ea5.tar.gz
packages-b1eb50599e4db7eb4501af75cbbfa22007081ea5.tar.bz2
packages-b1eb50599e4db7eb4501af75cbbfa22007081ea5.tar.xz
packages-b1eb50599e4db7eb4501af75cbbfa22007081ea5.zip
The New Plan
all pkgs needed to bootstrap -> system others -> user
Diffstat (limited to 'system/pax-utils/fix-eitype.patch')
-rw-r--r--system/pax-utils/fix-eitype.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/system/pax-utils/fix-eitype.patch b/system/pax-utils/fix-eitype.patch
new file mode 100644
index 000000000..fe54ee887
--- /dev/null
+++ b/system/pax-utils/fix-eitype.patch
@@ -0,0 +1,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(elfobj *elf);
+ extern const char *get_endian(elfobj *elf);
+ extern const char *get_elfosabi(elfobj *elf);