summaryrefslogtreecommitdiffstats
path: root/source/d/binutils/patches/binutils-CVE-2019-1010204.patch
diff options
context:
space:
mode:
Diffstat (limited to 'source/d/binutils/patches/binutils-CVE-2019-1010204.patch')
-rw-r--r--source/d/binutils/patches/binutils-CVE-2019-1010204.patch15
1 files changed, 15 insertions, 0 deletions
diff --git a/source/d/binutils/patches/binutils-CVE-2019-1010204.patch b/source/d/binutils/patches/binutils-CVE-2019-1010204.patch
new file mode 100644
index 000000000..56434b10d
--- /dev/null
+++ b/source/d/binutils/patches/binutils-CVE-2019-1010204.patch
@@ -0,0 +1,15 @@
+--- binutils.orig/gold/fileread.cc 2019-08-06 14:22:08.669313110 +0100
++++ binutils-2.32/gold/fileread.cc 2019-08-06 14:22:28.799177543 +0100
+@@ -381,6 +381,12 @@ File_read::do_read(off_t start, section_
+ ssize_t bytes;
+ if (this->whole_file_view_ != NULL)
+ {
++ // See PR 23765 for an example of a testcase that triggers this error.
++ if (((ssize_t) start) < 0)
++ gold_fatal(_("%s: read failed, starting offset (%#llx) less than zero"),
++ this->filename().c_str(),
++ static_cast<long long>(start));
++
+ bytes = this->size_ - start;
+ if (static_cast<section_size_type>(bytes) >= size)
+ {