Index: scanelf.c =================================================================== RCS file: /var/cvsroot/gentoo-projects/pax-utils/scanelf.c,v retrieving revision 1.143 diff -u -r1.143 scanelf.c --- scanelf.c 11 May 2006 05:44:22 -0000 1.143 +++ scanelf.c 13 May 2006 12:40:36 -0000 @@ -84,6 +84,7 @@ static char **qa_textrels = NULL; static char **qa_execstack = NULL; +static char **qa_wx_load = NULL; int match_bits = 0; caddr_t ldcache = 0; @@ -287,9 +288,11 @@ } else if (EGET(phdr[i].p_type) == PT_LOAD) { \ if (ehdr->e_type == ET_DYN || ehdr->e_type == ET_EXEC) \ if (multi_load++ > max_pt_load) warnf("%s: more than %i PT_LOAD's !?", elf->filename, max_pt_load); \ - found = found_load; \ - offset = 8; \ - check_flags = PF_W|PF_X; \ + if (!file_matches_list(elf->filename, qa_wx_load)) {\ + found = found_load; \ + offset = 8; \ + check_flags = PF_W|PF_X; \ + } else continue; \ } else \ continue; \ flags = EGET(phdr[i].p_flags); \ @@ -1870,6 +1873,7 @@ static void parseenv() { qa_textrels=get_split_env("QA_TEXTRELS"); qa_execstack=get_split_env("QA_EXECSTACK"); + qa_wx_load=get_split_env("QA_WX_LOAD"); }