mirror of
https://git.yoctoproject.org/poky
synced 2026-05-31 12:49:46 +00:00
make 4.1: fix segfault when ttyname fails
GNU make segfaults when run in a chroot environment because of a known bug in GNU make 4.1. See [1] for details. Works if /dev/pts is mounted before chroot. [1] http://savannah.gnu.org/bugs/?43434 [YOCTO #9067] Reported-by: Alexander Larsson <alexl@redhat.com> (From OE-Core master rev: 0fe2a4b428b1b9a937914d87ec089b5a64f641eb) (From OE-Core rev: 1def72ab689bbf0d2974ab771febf241befa2495) Signed-off-by: Anuj Mittal <anujx.mittal@intel.com> Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
269c2bd717
commit
f8dd7e105a
+63
@@ -0,0 +1,63 @@
|
|||||||
|
From 292da6f6867b75a5af7ddbb639a1feae022f438f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Paul Smith <psmith@gnu.org>
|
||||||
|
Date: Mon, 20 Oct 2014 01:54:56 -0400
|
||||||
|
Subject: [PATCH] * main.c (main): [SV 43434] Handle NULL returns from
|
||||||
|
ttyname().
|
||||||
|
|
||||||
|
Upstream-Status: Backport
|
||||||
|
|
||||||
|
From: http://git.savannah.gnu.org/cgit/make.git/commit/?id=292da6f6867b75a5af7ddbb639a1feae022f438f
|
||||||
|
|
||||||
|
---
|
||||||
|
main.c | 15 ++++++++++-----
|
||||||
|
makeint.h | 3 ++-
|
||||||
|
2 files changed, 12 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
@@ -4,6 +4,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
|
|||||||
file://glob/COPYING.LIB;md5=4a770b67e6be0f60da244beb2de0fce4"
|
file://glob/COPYING.LIB;md5=4a770b67e6be0f60da244beb2de0fce4"
|
||||||
require make.inc
|
require make.inc
|
||||||
|
|
||||||
|
SRC_URI += "file://0001-main.c-main-SV-43434-Handle-NULL-returns-from-ttynam.patch"
|
||||||
|
|
||||||
EXTRA_OECONF += "--without-guile"
|
EXTRA_OECONF += "--without-guile"
|
||||||
|
|
||||||
SRC_URI[md5sum] = "57a7a224a822f94789a587ccbcedff69"
|
SRC_URI[md5sum] = "57a7a224a822f94789a587ccbcedff69"
|
||||||
|
|||||||
Reference in New Issue
Block a user