From ecaf14514e06321823bdd10235cf23e7d654ba77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Mon, 15 Jan 2018 20:22:14 +0100 Subject: [PATCH] resource: Fix handling of very long image file names Fixes #4261 --- resource/image.go | 9 ++++++++- resource/image_test.go | 19 ++++++++++++++++++ ...opasdfghjklzxcvbnm5to6eeeeee7via8eleph.jpg | Bin 0 -> 90587 bytes resource/testhelpers_test.go | 10 ++++++--- 4 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 resource/testdata/1234567890qwertyuiopasdfghjklzxcvbnm5to6eeeeee7via8eleph.jpg diff --git a/resource/image.go b/resource/image.go index 191aaf84c..e9a617f97 100644 --- a/resource/image.go +++ b/resource/image.go @@ -538,7 +538,14 @@ func (i *Image) filenameFromConfig(conf imageConfig) string { // for the different OSes to handle. if len(p1)+len(idStr)+len(p2) > md5Threshold { key = helpers.MD5String(p1 + key + p2) - p1 = p1[:strings.Index(p1, "_hu")] + huIdx := strings.Index(p1, "_hu") + if huIdx != -1 { + p1 = p1[:huIdx] + } else { + // This started out as a very long file name. Making it even longer + // could melt ice in the Arctic. + p1 = "" + } } else if strings.Contains(p1, idStr) { // On scaling an already scaled image, we get the file info from the original. // Repeating the same info in the filename makes it stuttery for no good reason. diff --git a/resource/image_test.go b/resource/image_test.go index 073a16352..28f68a46c 100644 --- a/resource/image_test.go +++ b/resource/image_test.go @@ -115,6 +115,25 @@ func TestImageTransform(t *testing.T) { } +// https://github.com/gohugoio/hugo/issues/4261 +func TestImageTransformLongFilename(t *testing.T) { + assert := require.New(t) + + image := fetchImage(assert, "1234567890qwertyuiopasdfghjklzxcvbnm5to6eeeeee7via8eleph.jpg") + assert.NotNil(image) + + resized, err := image.Resize("200x") + assert.NoError(err) + assert.NotNil(resized) + assert.Equal(200, resized.Width()) + assert.Equal("/a/_hu59e56ffff1bc1d8d122b1403d34e039f_90587_fd0f8b23902abcf4092b68783834f7fe.jpg", resized.RelPermalink()) + resized, err = resized.Resize("100x") + assert.NoError(err) + assert.NotNil(resized) + assert.Equal(100, resized.Width()) + assert.Equal("/a/_hu59e56ffff1bc1d8d122b1403d34e039f_90587_5f399e62910070692b3034a925f1b2d7.jpg", resized.RelPermalink()) +} + func TestDecodeImaging(t *testing.T) { assert := require.New(t) m := map[string]interface{}{ diff --git a/resource/testdata/1234567890qwertyuiopasdfghjklzxcvbnm5to6eeeeee7via8eleph.jpg b/resource/testdata/1234567890qwertyuiopasdfghjklzxcvbnm5to6eeeeee7via8eleph.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7d7307bed36efb65bf0443b62ebec6be6d7d3420 GIT binary patch literal 90587 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 V6Yqu8|FQfEE;s&{==tyK{{g?L5tsk~ literal 0 HcmV?d00001 diff --git a/resource/testhelpers_test.go b/resource/testhelpers_test.go index 668885682..03a6d6134 100644 --- a/resource/testhelpers_test.go +++ b/resource/testhelpers_test.go @@ -37,12 +37,16 @@ func newTestResourceSpecForBaseURL(assert *require.Assertions, baseURL string) * } func fetchSunset(assert *require.Assertions) *Image { - src, err := os.Open("testdata/sunset.jpg") + return fetchImage(assert, "sunset.jpg") +} + +func fetchImage(assert *require.Assertions, name string) *Image { + src, err := os.Open("testdata/" + name) assert.NoError(err) spec := newTestResourceSpec(assert) - out, err := spec.Fs.Source.Create("/b/sunset.jpg") + out, err := spec.Fs.Source.Create("/b/" + name) assert.NoError(err) _, err = io.Copy(out, src) out.Close() @@ -53,7 +57,7 @@ func fetchSunset(assert *require.Assertions) *Image { return path.Join("/a", s) } - r, err := spec.NewResourceFromFilename(factory, "/public", "/b/sunset.jpg", "sunset.jpg") + r, err := spec.NewResourceFromFilename(factory, "/public", "/b/"+name, name) assert.NoError(err) assert.IsType(&Image{}, r) return r.(*Image)