diff options
| author | 2025-10-17 17:36:24 +0200 | |
|---|---|---|
| committer | 2025-11-17 14:11:11 +0100 | |
| commit | f714b06fec5b93cf076d0f92eeb8aa7c32cfb531 (patch) | |
| tree | 8e1a89dd7b0db0f17b695557d03eede9055134ae /vendor/github.com/tdewolff/parse/v2/binary_unix.go | |
| parent | [bugfix] recheck for just-processed-emoji within mutex lock before starting p... (diff) | |
| download | gotosocial-f714b06fec5b93cf076d0f92eeb8aa7c32cfb531.tar.xz | |
[chore] update dependencies (#4507)
- codeberg.org/gruf/go-runners: v1.6.3 -> v1.7.0
- codeberg.org/gruf/go-sched: v1.2.4 -> v1.3.0
- github.com/tdewolff/minify/v2: v2.24.3 -> v2.24.4
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4507
Co-authored-by: kim <grufwub@gmail.com>
Co-committed-by: kim <grufwub@gmail.com>
Diffstat (limited to 'vendor/github.com/tdewolff/parse/v2/binary_unix.go')
| -rw-r--r-- | vendor/github.com/tdewolff/parse/v2/binary_unix.go | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/vendor/github.com/tdewolff/parse/v2/binary_unix.go b/vendor/github.com/tdewolff/parse/v2/binary_unix.go index 4a8979fda..25ec83dbc 100644 --- a/vendor/github.com/tdewolff/parse/v2/binary_unix.go +++ b/vendor/github.com/tdewolff/parse/v2/binary_unix.go @@ -5,8 +5,8 @@ package parse import ( "errors" "fmt" + "io" "os" - "runtime" "syscall" ) @@ -25,6 +25,8 @@ func newBinaryReaderMmap(filename string) (*binaryReaderMmap, error) { info, err := f.Stat() if err != nil { return nil, err + } else if !info.Mode().IsRegular() { + return nil, fmt.Errorf("mmap: not a regular file: %v", filename) } size := info.Size() @@ -48,7 +50,7 @@ func newBinaryReaderMmap(filename string) (*binaryReaderMmap, error) { return nil, err } r := &binaryReaderMmap{data, size} - runtime.SetFinalizer(r, (*binaryReaderMmap).Close) + //runtime.SetFinalizer(r, (*binaryReaderMmap).Close) return r, nil } @@ -62,7 +64,7 @@ func (r *binaryReaderMmap) Close() error { } data := r.data r.data = nil - runtime.SetFinalizer(r, nil) + //runtime.SetFinalizer(r, nil) return syscall.Munmap(data) } @@ -72,18 +74,24 @@ func (r *binaryReaderMmap) Len() int64 { } func (r *binaryReaderMmap) Bytes(b []byte, n, off int64) ([]byte, error) { + var err error if r.data == nil { return nil, errors.New("mmap: closed") - } else if off < 0 || n < 0 || int64(len(r.data)) < off || int64(len(r.data))-off < n { + } else if off < 0 || n < 0 { return nil, fmt.Errorf("mmap: invalid range %d--%d", off, off+n) + } else if int64(len(r.data)) <= off { + return nil, io.EOF + } else if int64(len(r.data))-off <= n { + n = int64(len(r.data)) - off + err = io.EOF } data := r.data[off : off+n : off+n] if b == nil { - return data, nil + return data, err } copy(b, data) - return b, nil + return b[:len(data)], err } func NewBinaryReaderMmap(filename string) (*BinaryReader, error) { |
