mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
exif: Allow more spacing characters in strings
The root cause of issue #8079 was a non-breaking space (U+0160). `unicode.IsPrint` only allows the ASCII space (U+0020). Be more lenient by using `unicode.IsGraphic` instead. Fixes #8079
This commit is contained in:
parent
4d24e2a326
commit
0a2ab3f8fe
3 changed files with 15 additions and 1 deletions
|
@ -227,7 +227,7 @@ func (e *exifWalker) Walk(f _exif.FieldName, tag *tiff.Tag) error {
|
||||||
func nullString(in []byte) string {
|
func nullString(in []byte) string {
|
||||||
var rv bytes.Buffer
|
var rv bytes.Buffer
|
||||||
for _, b := range in {
|
for _, b := range in {
|
||||||
if unicode.IsPrint(rune(b)) {
|
if unicode.IsGraphic(rune(b)) {
|
||||||
rv.WriteByte(b)
|
rv.WriteByte(b)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,6 +75,20 @@ func TestExifPNG(t *testing.T) {
|
||||||
c.Assert(err, qt.Not(qt.IsNil))
|
c.Assert(err, qt.Not(qt.IsNil))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestIssue8079(t *testing.T) {
|
||||||
|
c := qt.New(t)
|
||||||
|
|
||||||
|
f, err := os.Open(filepath.FromSlash("../../testdata/iss8079.jpg"))
|
||||||
|
c.Assert(err, qt.IsNil)
|
||||||
|
defer f.Close()
|
||||||
|
|
||||||
|
d, err := NewDecoder()
|
||||||
|
c.Assert(err, qt.IsNil)
|
||||||
|
x, err := d.Decode(f)
|
||||||
|
c.Assert(err, qt.IsNil)
|
||||||
|
c.Assert(x.Tags["ImageDescription"], qt.Equals, "Città del Vaticano #nanoblock #vatican #vaticancity")
|
||||||
|
}
|
||||||
|
|
||||||
func BenchmarkDecodeExif(b *testing.B) {
|
func BenchmarkDecodeExif(b *testing.B) {
|
||||||
c := qt.New(b)
|
c := qt.New(b)
|
||||||
f, err := os.Open(filepath.FromSlash("../../testdata/sunset.jpg"))
|
f, err := os.Open(filepath.FromSlash("../../testdata/sunset.jpg"))
|
||||||
|
|
BIN
resources/testdata/iss8079.jpg
vendored
Normal file
BIN
resources/testdata/iss8079.jpg
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 114 KiB |
Loading…
Reference in a new issue