From: Bruno Jesus <00cpxxx@gmail.com> Subject: [PATCH 3/3] msacm32: Use a helper to validate stream pointers Message-Id: <20160828070730.14846-3-00cpxxx@gmail.com> Date: Sun, 28 Aug 2016 04:07:30 -0300 In-Reply-To: <20160828070730.14846-1-00cpxxx@gmail.com> References: <20160828070730.14846-1-00cpxxx@gmail.com> Signed-off-by: Bruno Jesus <00cpxxx@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