msacm32: Use a helper to validate stream pointers.
Signed-off-by: Bruno Jesus <00cpxxx@gmail.com> Signed-off-by: Andrew Eikum <aeikum@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
d4fd43c971
commit
37f159e1cb
|
@ -50,6 +50,15 @@ static PWINE_ACMSTREAM ACM_GetStream(HACMSTREAM has)
|
||||||
return (PWINE_ACMSTREAM)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.@)
|
* acmStreamClose (MSACM32.@)
|
||||||
*/
|
*/
|
||||||
|
@ -108,13 +117,9 @@ MMRESULT WINAPI acmStreamConvert(HACMSTREAM has, PACMSTREAMHEADER pash,
|
||||||
*/
|
*/
|
||||||
padsh = (PACMDRVSTREAMHEADER)pash;
|
padsh = (PACMDRVSTREAMHEADER)pash;
|
||||||
|
|
||||||
/* check that pointers have not been modified */
|
if (!ACM_ValidatePointers(padsh)) {
|
||||||
if (padsh->pbPreparedSrc != padsh->pbSrc ||
|
|
||||||
padsh->cbPreparedSrcLength < padsh->cbSrcLength ||
|
|
||||||
padsh->pbPreparedDst != padsh->pbDst ||
|
|
||||||
padsh->cbPreparedDstLength < padsh->cbDstLength) {
|
|
||||||
WARN("invalid parameter\n");
|
WARN("invalid parameter\n");
|
||||||
return MMSYSERR_INVALPARAM;
|
return MMSYSERR_INVALPARAM;
|
||||||
}
|
}
|
||||||
|
|
||||||
padsh->fdwConvert = fdwConvert;
|
padsh->fdwConvert = fdwConvert;
|
||||||
|
@ -467,13 +472,9 @@ MMRESULT WINAPI acmStreamUnprepareHeader(HACMSTREAM has, PACMSTREAMHEADER pash,
|
||||||
*/
|
*/
|
||||||
padsh = (PACMDRVSTREAMHEADER)pash;
|
padsh = (PACMDRVSTREAMHEADER)pash;
|
||||||
|
|
||||||
/* check that pointers have not been modified */
|
if (!ACM_ValidatePointers(padsh)) {
|
||||||
if (padsh->pbPreparedSrc != padsh->pbSrc ||
|
|
||||||
padsh->cbPreparedSrcLength < padsh->cbSrcLength ||
|
|
||||||
padsh->pbPreparedDst != padsh->pbDst ||
|
|
||||||
padsh->cbPreparedDstLength < padsh->cbDstLength) {
|
|
||||||
WARN("invalid parameter\n");
|
WARN("invalid parameter\n");
|
||||||
return MMSYSERR_INVALPARAM;
|
return MMSYSERR_INVALPARAM;
|
||||||
}
|
}
|
||||||
|
|
||||||
padsh->fdwConvert = fdwUnprepare;
|
padsh->fdwConvert = fdwUnprepare;
|
||||||
|
|
Loading…
Reference in New Issue