| From 292da6f6867b75a5af7ddbb639a1feae022f438f Mon Sep 17 00:00:00 2001 |
| From: Paul Smith <psmith@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 |