diff options
author | Mike Frysinger <vapier@gentoo.org> | 2005-08-18 22:30:15 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2005-08-18 22:30:15 +0000 |
commit | dd4fb9d0d2573137d49570e56d362cd3ae208867 (patch) | |
tree | 91aede4517cde1383a1abca9e4a4c385a1e78688 /sys-apps/modutils/files/modutils-2.4.27-no-nested-function.patch | |
parent | #103008: ebuild path fix (diff) | |
download | gentoo-2-dd4fb9d0d2573137d49570e56d362cd3ae208867.tar.gz gentoo-2-dd4fb9d0d2573137d49570e56d362cd3ae208867.tar.bz2 gentoo-2-dd4fb9d0d2573137d49570e56d362cd3ae208867.zip |
Fix by the PaX guys to remove executable stack markings.
(Portage version: 2.0.51.22-r2)
Diffstat (limited to 'sys-apps/modutils/files/modutils-2.4.27-no-nested-function.patch')
-rw-r--r-- | sys-apps/modutils/files/modutils-2.4.27-no-nested-function.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/sys-apps/modutils/files/modutils-2.4.27-no-nested-function.patch b/sys-apps/modutils/files/modutils-2.4.27-no-nested-function.patch new file mode 100644 index 000000000000..7af4599c7154 --- /dev/null +++ b/sys-apps/modutils/files/modutils-2.4.27-no-nested-function.patch @@ -0,0 +1,43 @@ +Patch by the PaX team to get rid of executable stacks. + +--- modutils/insmod/insmod.c ++++ modutils/insmod/insmod.c +@@ -366,18 +366,21 @@ static void hide_special_symbols(struct + sym->info = ELFW(ST_INFO) (STB_LOCAL, ELFW(ST_TYPE) (sym->info)); + } + ++static struct obj_file *load_map_file; ++ ++static int load_map_cmp(const void *a, const void *b) { ++ struct obj_symbol **as = (struct obj_symbol **) a; ++ struct obj_symbol **bs = (struct obj_symbol **) b; ++ unsigned long aa = obj_symbol_final_value(load_map_file, *as); ++ unsigned long ba = obj_symbol_final_value(load_map_file, *bs); ++ return aa < ba ? -1 : aa > ba ? 1 : 0; ++} ++ + static void print_load_map(struct obj_file *f) + { + struct obj_symbol *sym; + struct obj_symbol **all, **p; + struct obj_section *sec; +- int load_map_cmp(const void *a, const void *b) { +- struct obj_symbol **as = (struct obj_symbol **) a; +- struct obj_symbol **bs = (struct obj_symbol **) b; +- unsigned long aa = obj_symbol_final_value(f, *as); +- unsigned long ba = obj_symbol_final_value(f, *bs); +- return aa < ba ? -1 : aa > ba ? 1 : 0; +- } + int i, nsyms, *loaded; + + /* Report on the section layout. */ +@@ -425,7 +428,9 @@ static void print_load_map(struct obj_fi + *p++ = sym; + + /* Sort them by final value. */ ++ load_map_file = f; + qsort(all, nsyms, sizeof(struct obj_file *), load_map_cmp); ++ load_map_file = NULL; + + /* And list them. */ + lprintf("\nSymbols:"); |