From e2a499a09bdc607b1aae7f8d30b93579d46e8ec7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=B6r=C3=B6k=20Edvin?= Date: Mon, 9 Aug 2010 22:38:16 +0300 Subject: [PATCH] Fix PaX. --- libclamav/builtin_bytecodes.h | 12 ++++++------ libclamav/bytecode_detect.c | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/libclamav/builtin_bytecodes.h b/libclamav/builtin_bytecodes.h index 5d945da96..34c43c8d2 100644 --- a/libclamav/builtin_bytecodes.h +++ b/libclamav/builtin_bytecodes.h @@ -29,7 +29,7 @@ * fallback. * Usually bytecode.cvd will contain this bytecode */ -static const char* builtin_bc_startup = "ClamBCafhabenfeld|afefdfggifnf```aa```|biacflfafmfbfcfmb`cnbacacmbacdcgcmbgfcfefdcecdcccbc``bkbaap`clamcoincidencejb:1378\n" +static const char* builtin_bc_startup = "ClamBCafheaie`fld|afefdfggifnf```aa```|biacflfafmfbfcfmb`cnbacacmbacdcicmbgfhcachcgcbchccf``bkbaap`clamcoincidencejb:1378\n" "\n" "Teddaaahdabahdacahdadahdaeahdafahdagahebjfebidebifebhfebgfebffebedebefebdfebcfebadcbgab`bb`bb`bb`bb`bb`bb`bbbfbbfbbfbbfbbfbbfbbfahahahahahahahahahebgeebbfaaaaaaaab`baabb`bb`baacb`bbadb`baacb`bbheb`baacb`bb`bb`baadb`bbadb`bb`baadb`bbadbadb`bdbadahdbkaahdbbcahdbibahdb`eahdbddahdbodahdbdaahdbnbah\n" "Ebjdaibcdbke|bcaefnfgfifnfefoedfcfofnfffoelfeffgeflf``bbdbke|bkaefnfgfifnfefoeffegnfcfdgifofnfaflfifdgigoelfeffgeflf``agble|baadfefbfeggfoe`gbgifnfdgoeegifnfdg``bcable|afdgefcgdgbc``afbme|b`adfefbfeggfoe`gbgifnfdgoecgdgbg``bhdbne|b`agfefdgoeefnffgifbgofnfmfefnfdg``aaboe|afdgefcgdgac``bidb`f|bdadfifcgafbflfefoebfigdgefcfofdfefoeifff``bjdb`f|aodfifcgafbflfefoejfifdgoeifff``\n" @@ -41,14 +41,14 @@ static const char* builtin_bc_startup = "ClamBCafhabenfeld|afefdfggifnf```aa```| "Bb`bankbakAo`Addaaaoeab`ban@db`baa`aaob`b`bbaaaaTbaad\n" "Bb`bb`abbaab`ab`bbaaabcbjdAm`@db`aTbaae\n" "BbadbbadbbheabBeadahbcagbbbab`bbda`abcab`bbeak`bdaAadaabfaeab`bbea@dTaabfaafal\n" -"Bb`bbgaabcbjdB`a`@dAadbadbhadbbheabBbadahbiagbbhaaabjaeaahbiaAjaTaabjaagb`a\n" +"Bb`bbgaabcbjdB`a`@dAadbadbhadbbheabBaadahbiagbbhaaabjaeaahbiaAjaTaabjaagb`a\n" "Bahbkagbbbab`bbla`abkab`bbmak`blaAbdaabnaeab`bbma@dTaabnaaiah\n" "Bb`bboaabcbjdBaa`@dAadTbab`a\n" "Bb`bb`bk`blaAhdaababeab`bb`b@dTaababakaj\n" "Bb`bbbbabcbjdBba`@dAadTbab`a\n" "Bb`bbcbabcbjdBca`@dAadTbab`a\n" -"BbadbdbdbbheabBbadahbebgbbdbaabfbeaahbebAjaTaabfbanam\n" -"BbadbgbdbbheabBaadahbhbgbbgbaabibeaahbhbAfaTaabibanb`a\n" +"BbadbdbdbbheabBaadahbebgbbdbaabfbeaahbebAjaTaabfbanam\n" +"BbadbgbdbbheabBbadahbhbgbbgbaabibeaahbhbAfaTaabibanb`a\n" "Bb`bbjbk`bdaB`adaabkbeab`bbjb@dTaabkbb`aao\n" "Bb`bblbabcbjdBba`@dAadTbab`a\n" "Bb`bbmbabcbidBda`@d@daabnbnab`bbmbAadTaabnbbdabaa\n" @@ -105,7 +105,7 @@ int entrypoint() /* RWX checks */ if (!(env.os_features & (1 << feature_map_rwx))) { disable_jit_if("RWX mapping denied.", 0, 1); - if (env.os == os_linux) { + if (env.os_category == os_linux) { if (env.os_features & (1 << feature_selinux)) /* all SELinux versions deny RWX mapping when policy says so */ disable_jit_if("^SELinux is preventing 'execmem' access.\n" @@ -120,7 +120,7 @@ int entrypoint() "Please report to http://bugs.clamav.net\n", 0, 1); } } else { - if ((env.os == os_linux || env.os_category == llvm_os_Linux) && + if ((env.os_category == os_linux || env.os == llvm_os_Linux) && (env.os_features & (1 << feature_pax_mprotect))) { /* older versions of PaX allow RWX mapping but silently degrade it to RW * mapping and kill the program if it tries to execute. */ diff --git a/libclamav/bytecode_detect.c b/libclamav/bytecode_detect.c index fc4a6dd02..92b00a666 100644 --- a/libclamav/bytecode_detect.c +++ b/libclamav/bytecode_detect.c @@ -95,7 +95,7 @@ static int detect_PaX(void) } } fclose(f); - return 0; + return pax; } static int detect_SELinux(void)