embed: return io.EOF for excessively big ReadAt offset
Fixes #80822
diff --git a/src/embed/embed.go b/src/embed/embed.go
index 5b99c5e..0bfd74c 100644
--- a/src/embed/embed.go
+++ b/src/embed/embed.go
@@ -376,9 +376,12 @@
}
func (f *openFile) ReadAt(b []byte, offset int64) (int, error) {
- if offset < 0 || offset > int64(len(f.f.data)) {
+ if offset < 0 {
return 0, &fs.PathError{Op: "read", Path: f.f.name, Err: fs.ErrInvalid}
}
+ if offset >= int64(len(f.f.data)) {
+ return 0, io.EOF
+ }
n := copy(b, f.f.data[offset:])
if n < len(b) {
return n, io.EOF
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +2 |
| Commit-Queue | +1 |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Also the same bug exists in `src/testing/fstest/mapfs.go` and should also be fixed.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Please add a test case.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |