diff options
author | Justin Lecher <jlec@gentoo.org> | 2015-12-25 11:38:04 +0100 |
---|---|---|
committer | Justin Lecher <jlec@gentoo.org> | 2015-12-25 11:38:04 +0100 |
commit | 15848c4175bd2c42967e5f09128a600f376febd3 (patch) | |
tree | 89fe75f28508231b1744bf09851648def86c2826 /sci-biology/t-coffee | |
parent | sci-chemistry/tm-align: Version Bump (diff) | |
download | gentoo-15848c4175bd2c42967e5f09128a600f376febd3.tar.gz gentoo-15848c4175bd2c42967e5f09128a600f376febd3.tar.bz2 gentoo-15848c4175bd2c42967e5f09128a600f376febd3.zip |
sci-biology/t-coffee: Import fix for CVE-2015-8621
Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=569650
Package-Manager: portage-2.2.26
Signed-off-by: Justin Lecher <jlec@gentoo.org>
Diffstat (limited to 'sci-biology/t-coffee')
-rw-r--r-- | sci-biology/t-coffee/files/t-coffee-11.00-mayhem.patch | 25 | ||||
-rw-r--r-- | sci-biology/t-coffee/files/t-coffee-11.00-set_proper_dir_permissions.patch | 35 | ||||
-rw-r--r-- | sci-biology/t-coffee/t-coffee-11.00-r1.ebuild (renamed from sci-biology/t-coffee/t-coffee-11.00.ebuild) | 3 |
3 files changed, 63 insertions, 0 deletions
diff --git a/sci-biology/t-coffee/files/t-coffee-11.00-mayhem.patch b/sci-biology/t-coffee/files/t-coffee-11.00-mayhem.patch new file mode 100644 index 000000000000..cbfeeabc181b --- /dev/null +++ b/sci-biology/t-coffee/files/t-coffee-11.00-mayhem.patch @@ -0,0 +1,25 @@ +Author: Andreas Tille <tille@debian.org> +Last-Update: Mon, 21 Dec 2015 21:30:36 +0100 +Bug-Debian: https://bugs.debian.org/716373 +Description: Fix Mayhem issue + The idea behind this patch is that if there is a problem to set the HOME + directories no additional processes can exist and so we should *really* + exit. Somehow the printf_exit() function does some logic which ends up + in an endless loop and thus forcing the exit will help here. + . + Unfortunately this does not solve the issue completely since inside the + Exit call a "Segmentation fault" happens - so some broken pointer handling + seems to happen somewhere before. + +--- a/t_coffee_source/util_lib/util.c ++++ b/t_coffee_source/util_lib/util.c +@@ -4642,7 +4642,8 @@ char *get_home_4_tcoffee () + } + else + { +- printf_exit (EXIT_FAILURE, stderr, "ERROR: Could not set a HOME directory.\nSet any of the following environement variables to some suitable location: HOME, HOME_4_TCOFFEE, TMP or TEMP [FATAL:%s]\n", PROGRAM); ++ fprintf(stderr, "ERROR: Could not set a HOME directory.\nSet any of the following environement variables to some suitable location: HOME, HOME_4_TCOFFEE, TMP or TEMP [FATAL:%s]\n", PROGRAM); ++ exit(EXIT_FAILURE); + } + + diff --git a/sci-biology/t-coffee/files/t-coffee-11.00-set_proper_dir_permissions.patch b/sci-biology/t-coffee/files/t-coffee-11.00-set_proper_dir_permissions.patch new file mode 100644 index 000000000000..a3f47cd9fce2 --- /dev/null +++ b/sci-biology/t-coffee/files/t-coffee-11.00-set_proper_dir_permissions.patch @@ -0,0 +1,35 @@ +Author: Andreas Tille <tille@debian.org> +Last-Update: Mon, 21 Dec 2015 21:30:36 +0100 +Bug-Debian: https://bugs.debian.org/751579 +Description: When creating subdirectories in $HOME do not + make these world writable but keep users umask + +--- a/t_coffee_source/util_lib/util.c ++++ b/t_coffee_source/util_lib/util.c +@@ -7714,6 +7714,10 @@ int my_mkdir ( char *dir_in) + int a, buf; + char *dir; + ++ static char *home = getenv ("HOME"); ++ static mode_t oldmask = umask(0); ++ int change_umask = 0; ++ if (strncmp (dir_in, home, strlen(home))==0) change_umask = 1; + + dir=(char*)vcalloc ( strlen (dir_in)+strlen (get_home_4_tcoffee())+100, sizeof (char)); + sprintf ( dir, "%s", dir_in); +@@ -7733,10 +7737,11 @@ int my_mkdir ( char *dir_in) + + if (access(dir, F_OK)==-1) + { +- mode_t oldmask = umask(0); +- mkdir (dir, S_IRWXU | S_IRWXG | S_IRWXO); +- umask(oldmask); +- ++ if ( change_umask == 1 ) mkdir (dir, 0777-oldmask); ++ else { ++ mkdir (dir, S_IRWXU | S_IRWXG | S_IRWXO); ++ umask(oldmask); ++ } + if ( access (dir, F_OK)==-1) + { + myexit(fprintf_error ( stderr, "\nERROR: Could Not Create Directory %s [FATAL:%s]", dir, PROGRAM)); } diff --git a/sci-biology/t-coffee/t-coffee-11.00.ebuild b/sci-biology/t-coffee/t-coffee-11.00-r1.ebuild index 62e8b7033cbe..3f2861c4a478 100644 --- a/sci-biology/t-coffee/t-coffee-11.00.ebuild +++ b/sci-biology/t-coffee/t-coffee-11.00-r1.ebuild @@ -31,6 +31,9 @@ src_prepare() { -e '/@/s:.*;:\t:g' \ -e '/Linking/s:$(CC):$(CC) $(CFLAGS) $(LDFLAGS):g' \ -i t_coffee_source/makefile || die + epatch \ + "${FILESDIR}"/${P}-mayhem.patch \ + "${FILESDIR}"/${P}-set_proper_dir_permissions.patch } src_compile() { |