]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gold/fileread.cc
Have gold's File_read::do_read() function check the start parameter
[thirdparty/binutils-gdb.git] / gold / fileread.cc
index 2b653f78c2e14e6cf5af2ae1c5366b797e182958..af2df21546861e2b6a8ce8dd4c05a5c4136f38a1 100644 (file)
@@ -385,6 +385,12 @@ File_read::do_read(off_t start, section_size_type size, void* p)
   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)
        {