From 5958009b73d6e0048123e934a37e7f21be747086 Mon Sep 17 00:00:00 2001 From: Andi Kleen 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. From-SVN: r180065 --- 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 e350fd83b05..12f75ada5b7 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 a77eeb48c55..63af047640d 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.30.2