polynomial-c 14/10/20 20:28:28 Added: make-4.1-fix_null_returns_from_ttyname.patch Log: Revbump to fix a segfault when running make without /dev/pts being mounted (bug #525546) (Portage version: 2.2.14/cvs/Linux x86_64, signed Manifest commit with key 0x981CA6FC)
Revision Changes Path 1.1 sys-devel/make/files/make-4.1-fix_null_returns_from_ttyname.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/make/files/make-4.1-fix_null_returns_from_ttyname.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/make/files/make-4.1-fix_null_returns_from_ttyname.patch?rev=1.1&content-type=text/plain Index: make-4.1-fix_null_returns_from_ttyname.patch =================================================================== >From 292da6f6867b75a5af7ddbb639a1feae022f438f Mon Sep 17 00:00:00 2001 From: Paul Smith <psm...@gnu.org> Date: Mon, 20 Oct 2014 05:54:56 +0000 Subject: * main.c (main): [SV 43434] Handle NULL returns from ttyname(). --- diff --git a/main.c b/main.c index b2d169c..0cdb8a8 100644 --- a/main.c +++ b/main.c @@ -1429,13 +1429,18 @@ main (int argc, char **argv, char **envp) #ifdef HAVE_ISATTY if (isatty (fileno (stdout))) if (! lookup_variable (STRING_SIZE_TUPLE ("MAKE_TERMOUT"))) - define_variable_cname ("MAKE_TERMOUT", TTYNAME (fileno (stdout)), - o_default, 0)->export = v_export; - + { + const char *tty = TTYNAME (fileno (stdout)); + define_variable_cname ("MAKE_TERMOUT", tty ? tty : DEFAULT_TTYNAME, + o_default, 0)->export = v_export; + } if (isatty (fileno (stderr))) if (! lookup_variable (STRING_SIZE_TUPLE ("MAKE_TERMERR"))) - define_variable_cname ("MAKE_TERMERR", TTYNAME (fileno (stderr)), - o_default, 0)->export = v_export; + { + const char *tty = TTYNAME (fileno (stderr)); + define_variable_cname ("MAKE_TERMERR", tty ? tty : DEFAULT_TTYNAME, + o_default, 0)->export = v_export; + } #endif /* Reset in case the switches changed our minds. */ diff --git a/makeint.h b/makeint.h index 6223936..2009f41 100644 --- a/makeint.h +++ b/makeint.h @@ -436,10 +436,11 @@ extern struct rlimit stack_limit; /* The number of bytes needed to represent the largest integer as a string. */ #define INTSTR_LENGTH CSTRLEN ("18446744073709551616") +#define DEFAULT_TTYNAME "true" #ifdef HAVE_TTYNAME # define TTYNAME(_f) ttyname (_f) #else -# define TTYNAME(_f) "true" +# define TTYNAME(_f) DEFAULT_TTYNAME #endif -- cgit v0.9.0.2