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




Reply via email to