Akihiro Sagawa : strmbase: Add null pointer checks to BaseControlVideoImpls.

Alexandre Julliard julliard at winehq.org
Mon Nov 21 15:28:12 CST 2016


Module: wine
Branch: master
Commit: 0638213243d0799734a75c182a81f886257d0970
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0638213243d0799734a75c182a81f886257d0970

Author: Akihiro Sagawa <sagawa.aki at gmail.com>
Date:   Sun Nov 20 15:33:21 2016 +0900

strmbase: Add null pointer checks to BaseControlVideoImpls.

Signed-off-by: Akihiro Sagawa <sagawa.aki at gmail.com>
Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/strmbase/video.c | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/dlls/strmbase/video.c b/dlls/strmbase/video.c
index ec3a076..be65886 100644
--- a/dlls/strmbase/video.c
+++ b/dlls/strmbase/video.c
@@ -95,6 +95,8 @@ HRESULT WINAPI BaseControlVideoImpl_get_AvgTimePerFrame(IBasicVideo *iface, REFT
     VIDEOINFOHEADER *vih;
     BaseControlVideo *This = impl_from_IBasicVideo(iface);
 
+    if (!pAvgTimePerFrame)
+        return E_POINTER;
     if (!This->pPin->pConnectedTo)
         return VFW_E_NOT_CONNECTED;
 
@@ -112,6 +114,8 @@ HRESULT WINAPI BaseControlVideoImpl_get_BitRate(IBasicVideo *iface, LONG *pBitRa
 
     TRACE("(%p/%p)->(%p)\n", This, iface, pBitRate);
 
+    if (!pBitRate)
+        return E_POINTER;
     if (!This->pPin->pConnectedTo)
         return VFW_E_NOT_CONNECTED;
 
@@ -127,6 +131,8 @@ HRESULT WINAPI BaseControlVideoImpl_get_BitErrorRate(IBasicVideo *iface, LONG *p
 
     TRACE("(%p/%p)->(%p)\n", This, iface, pBitErrorRate);
 
+    if (!pBitErrorRate)
+        return E_POINTER;
     if (!This->pPin->pConnectedTo)
         return VFW_E_NOT_CONNECTED;
 
@@ -141,6 +147,8 @@ HRESULT WINAPI BaseControlVideoImpl_get_VideoWidth(IBasicVideo *iface, LONG *pVi
     BaseControlVideo *This = impl_from_IBasicVideo(iface);
 
     TRACE("(%p/%p)->(%p)\n", This, iface, pVideoWidth);
+    if (!pVideoWidth)
+        return E_POINTER;
 
     vih = This->pFuncsTable->pfnGetVideoFormat(This);
     *pVideoWidth = vih->bmiHeader.biWidth;
@@ -154,6 +162,8 @@ HRESULT WINAPI BaseControlVideoImpl_get_VideoHeight(IBasicVideo *iface, LONG *pV
     BaseControlVideo *This = impl_from_IBasicVideo(iface);
 
     TRACE("(%p/%p)->(%p)\n", This, iface, pVideoHeight);
+    if (!pVideoHeight)
+        return E_POINTER;
 
     vih = This->pFuncsTable->pfnGetVideoFormat(This);
     *pVideoHeight = abs(vih->bmiHeader.biHeight);
@@ -180,6 +190,8 @@ HRESULT WINAPI BaseControlVideoImpl_get_SourceLeft(IBasicVideo *iface, LONG *pSo
     BaseControlVideo *This = impl_from_IBasicVideo(iface);
 
     TRACE("(%p/%p)->(%p)\n", This, iface, pSourceLeft);
+    if (!pSourceLeft)
+        return E_POINTER;
     This->pFuncsTable->pfnGetSourceRect(This, &SourceRect);
     *pSourceLeft = SourceRect.left;
 
@@ -205,6 +217,8 @@ HRESULT WINAPI BaseControlVideoImpl_get_SourceWidth(IBasicVideo *iface, LONG *pS
     BaseControlVideo *This = impl_from_IBasicVideo(iface);
 
     TRACE("(%p/%p)->(%p)\n", This, iface, pSourceWidth);
+    if (!pSourceWidth)
+        return E_POINTER;
     This->pFuncsTable->pfnGetSourceRect(This, &SourceRect);
     *pSourceWidth = SourceRect.right - SourceRect.left;
 
@@ -230,6 +244,8 @@ HRESULT WINAPI BaseControlVideoImpl_get_SourceTop(IBasicVideo *iface, LONG *pSou
     BaseControlVideo *This = impl_from_IBasicVideo(iface);
 
     TRACE("(%p/%p)->(%p)\n", This, iface, pSourceTop);
+    if (!pSourceTop)
+        return E_POINTER;
     This->pFuncsTable->pfnGetSourceRect(This, &SourceRect);
     *pSourceTop = SourceRect.top;
 
@@ -255,6 +271,8 @@ HRESULT WINAPI BaseControlVideoImpl_get_SourceHeight(IBasicVideo *iface, LONG *p
     BaseControlVideo *This = impl_from_IBasicVideo(iface);
 
     TRACE("(%p/%p)->(%p)\n", This, iface, pSourceHeight);
+    if (!pSourceHeight)
+        return E_POINTER;
     This->pFuncsTable->pfnGetSourceRect(This, &SourceRect);
 
     *pSourceHeight = SourceRect.bottom - SourceRect.top;
@@ -281,6 +299,8 @@ HRESULT WINAPI BaseControlVideoImpl_get_DestinationLeft(IBasicVideo *iface, LONG
     BaseControlVideo *This = impl_from_IBasicVideo(iface);
 
     TRACE("(%p/%p)->(%p)\n", This, iface, pDestinationLeft);
+    if (!pDestinationLeft)
+        return E_POINTER;
     This->pFuncsTable->pfnGetTargetRect(This, &DestRect);
     *pDestinationLeft = DestRect.left;
 
@@ -306,6 +326,8 @@ HRESULT WINAPI BaseControlVideoImpl_get_DestinationWidth(IBasicVideo *iface, LON
     BaseControlVideo *This = impl_from_IBasicVideo(iface);
 
     TRACE("(%p/%p)->(%p)\n", This, iface, pDestinationWidth);
+    if (!pDestinationWidth)
+        return E_POINTER;
     This->pFuncsTable->pfnGetTargetRect(This, &DestRect);
     *pDestinationWidth = DestRect.right - DestRect.left;
 
@@ -331,6 +353,8 @@ HRESULT WINAPI BaseControlVideoImpl_get_DestinationTop(IBasicVideo *iface, LONG
     BaseControlVideo *This = impl_from_IBasicVideo(iface);
 
     TRACE("(%p/%p)->(%p)\n", This, iface, pDestinationTop);
+    if (!pDestinationTop)
+        return E_POINTER;
     This->pFuncsTable->pfnGetTargetRect(This, &DestRect);
     *pDestinationTop = DestRect.top;
 
@@ -356,6 +380,8 @@ HRESULT WINAPI BaseControlVideoImpl_get_DestinationHeight(IBasicVideo *iface, LO
     BaseControlVideo *This = impl_from_IBasicVideo(iface);
 
     TRACE("(%p/%p)->(%p)\n", This, iface, pDestinationHeight);
+    if (!pDestinationHeight)
+        return E_POINTER;
     This->pFuncsTable->pfnGetTargetRect(This, &DestRect);
     *pDestinationHeight = DestRect.right - DestRect.left;
 
@@ -381,6 +407,8 @@ HRESULT WINAPI BaseControlVideoImpl_GetSourcePosition(IBasicVideo *iface, LONG *
     BaseControlVideo *This = impl_from_IBasicVideo(iface);
 
     TRACE("(%p/%p)->(%p, %p, %p, %p)\n", This, iface, pLeft, pTop, pWidth, pHeight);
+    if (!pLeft || !pTop || !pWidth || !pHeight)
+        return E_POINTER;
     This->pFuncsTable->pfnGetSourceRect(This, &SourceRect);
 
     *pLeft = SourceRect.left;
@@ -418,6 +446,8 @@ HRESULT WINAPI BaseControlVideoImpl_GetDestinationPosition(IBasicVideo *iface, L
     BaseControlVideo *This = impl_from_IBasicVideo(iface);
 
     TRACE("(%p/%p)->(%p, %p, %p, %p)\n", This, iface, pLeft, pTop, pWidth, pHeight);
+    if (!pLeft || !pTop || !pWidth || !pHeight)
+        return E_POINTER;
     This->pFuncsTable->pfnGetTargetRect(This, &DestRect);
 
     *pLeft = DestRect.left;
@@ -442,6 +472,8 @@ HRESULT WINAPI BaseControlVideoImpl_GetVideoSize(IBasicVideo *iface, LONG *pWidt
     BaseControlVideo *This = impl_from_IBasicVideo(iface);
 
     TRACE("(%p/%p)->(%p, %p)\n", This, iface, pWidth, pHeight);
+    if (!pWidth || !pHeight)
+        return E_POINTER;
 
     vih = This->pFuncsTable->pfnGetVideoFormat(This);
     *pHeight = vih->bmiHeader.biHeight;
@@ -455,6 +487,8 @@ HRESULT WINAPI BaseControlVideoImpl_GetVideoPaletteEntries(IBasicVideo *iface, L
     BaseControlVideo *This = impl_from_IBasicVideo(iface);
 
     TRACE("(%p/%p)->(%d, %d, %p, %p)\n", This, iface, StartIndex, Entries, pRetrieved, pPalette);
+    if (!pRetrieved || !pPalette)
+        return E_POINTER;
 
     if (pRetrieved)
         *pRetrieved = 0;
@@ -464,6 +498,8 @@ HRESULT WINAPI BaseControlVideoImpl_GetVideoPaletteEntries(IBasicVideo *iface, L
 HRESULT WINAPI BaseControlVideoImpl_GetCurrentImage(IBasicVideo *iface, LONG *pBufferSize, LONG *pDIBImage)
 {
     BaseControlVideo *This = impl_from_IBasicVideo(iface);
+    if (!pBufferSize || !pDIBImage)
+        return E_POINTER;
 
     return This->pFuncsTable->pfnGetStaticImage(This, pBufferSize, pDIBImage);
 }




More information about the wine-cvs mailing list