mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[bugfix] Fix images not being processed correctly sometimes (#437)
* bump exif-terminator to latest version * add and test giant turnip from turnip.farm * don't error if content property is nil
This commit is contained in:
2
vendor/github.com/superseriousbusiness/exif-terminator/jpeg.go
generated
vendored
2
vendor/github.com/superseriousbusiness/exif-terminator/jpeg.go
generated
vendored
@ -23,7 +23,7 @@ import (
|
||||
"fmt"
|
||||
"io"
|
||||
|
||||
jpegstructure "github.com/dsoprea/go-jpeg-image-structure/v2"
|
||||
jpegstructure "github.com/superseriousbusiness/go-jpeg-image-structure/v2"
|
||||
)
|
||||
|
||||
var markerLen = map[byte]int{
|
||||
|
47
vendor/github.com/superseriousbusiness/exif-terminator/logger.go
generated
vendored
Normal file
47
vendor/github.com/superseriousbusiness/exif-terminator/logger.go
generated
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
/*
|
||||
exif-terminator
|
||||
Copyright (C) 2022 SuperSeriousBusiness admin@gotosocial.org
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package terminator
|
||||
|
||||
import "fmt"
|
||||
|
||||
var logger ErrorLogger
|
||||
|
||||
func init() {
|
||||
logger = &defaultErrorLogger{}
|
||||
}
|
||||
|
||||
// ErrorLogger denotes a generic error logging function.
|
||||
type ErrorLogger interface {
|
||||
Error(args ...interface{})
|
||||
}
|
||||
|
||||
type defaultErrorLogger struct{}
|
||||
|
||||
func (d *defaultErrorLogger) Error(args ...interface{}) {
|
||||
fmt.Println(args...)
|
||||
}
|
||||
|
||||
// SetErrorLogger allows a user of the exif-terminator library
|
||||
// to set the logger that will be used for error logging.
|
||||
//
|
||||
// If it is not set, the default error logger will be used, which
|
||||
// just prints errors to stdout.
|
||||
func SetErrorLogger(errorLogger ErrorLogger) {
|
||||
logger = errorLogger
|
||||
}
|
7
vendor/github.com/superseriousbusiness/exif-terminator/terminator.go
generated
vendored
7
vendor/github.com/superseriousbusiness/exif-terminator/terminator.go
generated
vendored
@ -25,7 +25,7 @@ import (
|
||||
"fmt"
|
||||
"io"
|
||||
|
||||
jpegstructure "github.com/dsoprea/go-jpeg-image-structure/v2"
|
||||
jpegstructure "github.com/superseriousbusiness/go-jpeg-image-structure/v2"
|
||||
pngstructure "github.com/dsoprea/go-png-image-structure/v2"
|
||||
)
|
||||
|
||||
@ -109,8 +109,11 @@ func scanAndClose(scanner *bufio.Scanner, writer io.WriteCloser) {
|
||||
// until the pipeReader starts being read by the caller, which
|
||||
// is why we do this asynchronously
|
||||
go func() {
|
||||
defer writer.Close()
|
||||
for scanner.Scan() {
|
||||
}
|
||||
writer.Close()
|
||||
if scanner.Err() != nil {
|
||||
logger.Error(scanner.Err())
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
@ -232,8 +232,8 @@ func (js *JpegSplitter) readSegment(data []byte) (count int, err error) {
|
||||
err = binary.Read(b, binary.BigEndian, &l)
|
||||
log.PanicIf(err)
|
||||
|
||||
if l <= 2 {
|
||||
log.Panicf("length of size read for non-special marker (%02x) is unexpectedly not more than two.", markerId)
|
||||
if l < 2 {
|
||||
log.Panicf("length of size read for non-special marker (%02x) is unexpectedly less than two.", markerId)
|
||||
}
|
||||
|
||||
// (l includes the bytes of the length itself.)
|
Reference in New Issue
Block a user