From: Cameron Moore Date: Sat, 13 Mar 2021 15:21:30 +0000 (-0600) Subject: exif: Allow more spacing characters in strings X-Git-Tag: v0.82.0~17 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=0a2ab3f8feb961f8394b1f9964fab36bfa468027;p=brevno-suite%2Fhugo 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 --- diff --git a/resources/images/exif/exif.go b/resources/images/exif/exif.go index 720d200c..065c1435 100644 --- a/resources/images/exif/exif.go +++ b/resources/images/exif/exif.go @@ -227,7 +227,7 @@ func (e *exifWalker) Walk(f _exif.FieldName, tag *tiff.Tag) error { func nullString(in []byte) string { var rv bytes.Buffer for _, b := range in { - if unicode.IsPrint(rune(b)) { + if unicode.IsGraphic(rune(b)) { rv.WriteByte(b) } } diff --git a/resources/images/exif/exif_test.go b/resources/images/exif/exif_test.go index 12e3b7f7..69540ddf 100644 --- a/resources/images/exif/exif_test.go +++ b/resources/images/exif/exif_test.go @@ -75,6 +75,20 @@ func TestExifPNG(t *testing.T) { 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) { c := qt.New(b) f, err := os.Open(filepath.FromSlash("../../testdata/sunset.jpg")) diff --git a/resources/testdata/iss8079.jpg b/resources/testdata/iss8079.jpg new file mode 100644 index 00000000..a9049e81 Binary files /dev/null and b/resources/testdata/iss8079.jpg differ