[FFmpeg-devel] [PATCH 08/10] swscale/swscale_unscaled: Fix odd height with nv24_to_yuv420p_chroma()
Michael Niedermayer
michael at niedermayer.cc
Tue Sep 24 16:34:58 EEST 2024
On Mon, Sep 23, 2024 at 12:42:22AM +0200, Ramiro Polla wrote:
> Hi,
>
> On Mon, Sep 23, 2024 at 12:04 AM Michael Niedermayer
> <michael at niedermayer.cc> wrote:
> >
> > Fixes: out of array read
> > Fixes: 71726/clusterfuzz-testcase-ffmpeg_SWS_fuzzer-5876893532880896
> >
> > Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> > Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> > ---
> > libswscale/swscale_unscaled.c | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c
> > index dc1d5f35932..d403c953cc7 100644
> > --- a/libswscale/swscale_unscaled.c
> > +++ b/libswscale/swscale_unscaled.c
> > @@ -230,6 +230,8 @@ static void nv24_to_yuv420p_chroma(uint8_t *dst1, int dstStride1,
> > const uint8_t *src2 = src + srcStride;
> > // average 4 pixels into 1 (interleaved U and V)
> > for (int y = 0; y < h; y += 2) {
> > + if (y + 1 == h)
> > + src2 = src1;
> > for (int x = 0; x < w; x++) {
> > dst1[x] = (src1[4 * x + 0] + src1[4 * x + 2] +
> > src2[4 * x + 0] + src2[4 * x + 2]) >> 2;
>
> I would prefer to keep nv24_to_yuv420p_chroma() expecting height to be
> a multiple of 2. We could add && !(c->srcH & 1) before selecting
> nv24ToYuv420Wrapper.
what advantage does this have ?
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Some people wanted to paint the bikeshed green, some blue and some pink.
People argued and fought, when they finally agreed, only rust was left.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20240924/898f6372/attachment.sig>
More information about the ffmpeg-devel
mailing list