[2/5] strmbase: Add validation checks when updating source rectangle.
Akihiro Sagawa
sagawa.aki at gmail.com
Thu Nov 24 10:10:08 CST 2016
On Mon, 21 Nov 2016 10:19:59 -0600, Andrew Eikum wrote:
> On Sun, Nov 20, 2016 at 03:33:22PM +0900, Akihiro Sagawa wrote:
> > @@ -53,6 +53,26 @@ HRESULT WINAPI BaseControlVideo_Destroy(BaseControlVideo *pControlVideo)
> > return BaseDispatch_Destroy(&pControlVideo->baseDispatch);
> > }
> >
> > +static HRESULT BaseControlVideoImpl_CheckSourceRect(BaseControlVideo *This, RECT *pSourceRect)
> > +{
> > + LONG VideoWidth, VideoHeight;
> > + HRESULT hr;
> > +
> > + if (pSourceRect->top < 0 || pSourceRect->left < 0 ||
> > + pSourceRect->top >= pSourceRect->bottom ||
> > + pSourceRect->left >= pSourceRect->right)
> > + return E_INVALIDARG;
>
> I'm not opposed to spelling it out, but you could use IsRectEmpty()
> here instead.
Thanks for reviewing. I sent v2 patch set based on your helpful comments.
It also includes fix of underlying copy-paste error.
> > +
> > + hr = BaseControlVideoImpl_GetVideoSize((IBasicVideo *)This, &VideoWidth, &VideoHeight);
> > + if (FAILED(hr))
> > + return hr;
> > +
> > + if (pSourceRect->bottom > VideoHeight || pSourceRect->right > VideoWidth)
> > + return E_INVALIDARG;
> > +
>
> Shouldn't these use (bottom - top) and (right - left)?
I'd like to say no at this point because native doesn't accept source
rectangle that points outside of the original video area.
tests/filtergraph.c's line 94 and 104 test this case.
Akihiro Sagawa
More information about the wine-devel
mailing list