Bruno Jesus : msacm32: Use a helper to validate stream pointers.
Module: wine Branch: master Commit: 37f159e1cb26c3f3a666f76f76c1f8809538bbe3 URL: http://source.winehq.org/git/wine.git/?a=commit;h=37f159e1cb26c3f3a666f76f76... Author: Bruno Jesus <00cpxxx(a)gmail.com> Date: Sun Aug 28 04:07:30 2016 -0300 msacm32: Use a helper to validate stream pointers. Signed-off-by: Bruno Jesus <00cpxxx(a)gmail.com> Signed-off-by: Andrew Eikum <aeikum(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- 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;
participants (1)
-
Alexandre Julliard