[PATCH 3/3] msacm32: Use a helper to validate stream pointers

Andrew Eikum aeikum at codeweavers.com
Mon Aug 29 08:39:03 CDT 2016


Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>

On Sun, Aug 28, 2016 at 04:07:30AM -0300, Bruno Jesus wrote:
> Signed-off-by: Bruno Jesus <00cpxxx at gmail.com>
> ---
>  dlls/msacm32/stream.c | 25 +++++++++++++------------
>  1 file changed, 13 insertions(+), 12 deletions(-)
> 
> diff --git a/dlls/msacm32/stream.c b/dlls/msacm32/stream.c
> index 4b4976f..6e81151 100644
> --- a/dlls/msacm32/stream.c
> +++ b/dlls/msacm32/stream.c
> @@ -50,6 +50,15 @@ static PWINE_ACMSTREAM	ACM_GetStream(HACMSTREAM has)
>      return (PWINE_ACMSTREAM)has;
>  }
>  
> +static BOOL ACM_ValidatePointers(PACMDRVSTREAMHEADER padsh)
> +{
> +    /* check that pointers have not been modified */
> +    return !(padsh->pbPreparedSrc != padsh->pbSrc ||
> +             padsh->cbPreparedSrcLength < padsh->cbSrcLength ||
> +             padsh->pbPreparedDst != padsh->pbDst ||
> +             padsh->cbPreparedDstLength < padsh->cbDstLength);
> +}
> +
>  /***********************************************************************
>   *           acmStreamClose (MSACM32.@)
>   */
> @@ -108,13 +117,9 @@ MMRESULT WINAPI acmStreamConvert(HACMSTREAM has, PACMSTREAMHEADER pash,
>       */
>      padsh = (PACMDRVSTREAMHEADER)pash;
>  
> -    /* check that pointers have not been modified */
> -    if (padsh->pbPreparedSrc != padsh->pbSrc ||
> -	padsh->cbPreparedSrcLength < padsh->cbSrcLength ||
> -	padsh->pbPreparedDst != padsh->pbDst ||
> -	padsh->cbPreparedDstLength < padsh->cbDstLength) {
> +    if (!ACM_ValidatePointers(padsh)) {
>          WARN("invalid parameter\n");
> -	return MMSYSERR_INVALPARAM;
> +        return MMSYSERR_INVALPARAM;
>      }
>  
>      padsh->fdwConvert = fdwConvert;
> @@ -467,13 +472,9 @@ MMRESULT WINAPI acmStreamUnprepareHeader(HACMSTREAM has, PACMSTREAMHEADER pash,
>       */
>      padsh = (PACMDRVSTREAMHEADER)pash;
>  
> -    /* check that pointers have not been modified */
> -    if (padsh->pbPreparedSrc != padsh->pbSrc ||
> -	padsh->cbPreparedSrcLength < padsh->cbSrcLength ||
> -	padsh->pbPreparedDst != padsh->pbDst ||
> -	padsh->cbPreparedDstLength < padsh->cbDstLength) {
> +    if (!ACM_ValidatePointers(padsh)) {
>          WARN("invalid parameter\n");
> -	return MMSYSERR_INVALPARAM;
> +        return MMSYSERR_INVALPARAM;
>      }
>  
>      padsh->fdwConvert = fdwUnprepare;
> -- 
> 2.9.3
> 
> 
> 



More information about the wine-patches mailing list