diff -rupN --no-dereference binutils-2.32/gold/fileread.cc binutils-2.32-new/gold/fileread.cc --- binutils-2.32/gold/fileread.cc 2019-01-19 17:01:33.000000000 +0100 +++ binutils-2.32-new/gold/fileread.cc 2019-11-19 20:47:14.475662786 +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(start)); + bytes = this->size_ - start; if (static_cast(bytes) >= size) {