From d5d7d3dbb20deed107f83d58c33bd220e1d47218 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 2 Jun 2014 14:59:10 +0100 Subject: Expand the over-allocation of image buffers to 32 bytes to attempt to avoid bad reads by swscale. --- src/lib/image.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/lib') diff --git a/src/lib/image.cc b/src/lib/image.cc index 1fa55e242..e8622eba4 100644 --- a/src/lib/image.cc +++ b/src/lib/image.cc @@ -490,8 +490,13 @@ Image::allocate () OS X crashes on this illegal read, though other operating systems don't seem to mind. The nasty + 1 in this malloc makes sure there is always a byte for that instruction to read safely. + + Further to the above, valgrind is now telling me that ff_rgb24ToY_ssse3 + over-reads by more then _avx. I can't follow the code to work out how much, + so I'll just over-allocate by 32 bytes and have done with it. Empirical + testing suggests that it works. */ - _data[i] = (uint8_t *) wrapped_av_malloc (_stride[i] * lines (i) + 1); + _data[i] = (uint8_t *) wrapped_av_malloc (_stride[i] * lines (i) + 32); } } -- cgit v1.2.3