From a5f12044cbb81fb3a08e03e6cee289832b0e564e Mon Sep 17 00:00:00 2001 From: ak Date: Sun, 16 Oct 2011 23:22:32 +0000 Subject: [PATCH] Add error checking to lto_section_read gcc/lto/: 2011-10-09 Andi Kleen * lto.c (lto_section_read): Call fatal_error on IO or mmap errors. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180065 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/lto/ChangeLog | 4 ++++ gcc/lto/lto.c | 11 +++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index e350fd8..12f75ad 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,7 @@ +2011-10-09 Andi Kleen + + * lto.c (lto_section_read): Call fatal_error on IO or mmap errors. + 2011-10-11 Michael Meissner * lto-lang.c (def_builtin_1): Delete old interface with two diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index a77eeb4..63af047 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -1237,7 +1237,10 @@ lto_read_section_data (struct lto_file_decl_data *file_data, { fd = open (file_data->file_name, O_RDONLY|O_BINARY); if (fd == -1) - return NULL; + { + fatal_error ("Cannot open %s", file_data->file_name); + return NULL; + } fd_name = xstrdup (file_data->file_name); } @@ -1255,7 +1258,10 @@ lto_read_section_data (struct lto_file_decl_data *file_data, result = (char *) mmap (NULL, computed_len, PROT_READ, MAP_PRIVATE, fd, computed_offset); if (result == MAP_FAILED) - return NULL; + { + fatal_error ("Cannot map %s", file_data->file_name); + return NULL; + } return result + diff; #else @@ -1264,6 +1270,7 @@ lto_read_section_data (struct lto_file_decl_data *file_data, || read (fd, result, len) != (ssize_t) len) { free (result); + fatal_error ("Cannot read %s", file_data->file_name); result = NULL; } #ifdef __MINGW32__ -- 2.7.4