Re: [PATCH 01/12] msacm32: Add more invalid parameter checks for acmFormatEnum().
In the future, please limit patch sequences to about four patches. It's much easier to review and iterate on smaller sequences. Looks mostly good, a couple small comments in-line below. On Tue, Jun 06, 2017 at 03:14:50PM -0500, Zebediah Figura wrote:
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> --- dlls/msacm32/format.c | 19 ++++++++++++++++++- dlls/msacm32/tests/msacm.c | 36 ++++++++++++++++++++++++++++++++---- 2 files changed, 50 insertions(+), 5 deletions(-)
diff --git a/dlls/msacm32/format.c b/dlls/msacm32/format.c index 3f3ee5492d..70fe9f0d1b 100644 --- a/dlls/msacm32/format.c +++ b/dlls/msacm32/format.c @@ -492,13 +492,16 @@ MMRESULT WINAPI acmFormatEnumA(HACMDRIVER had, PACMFORMATDETAILSA pafda, if (!pafda) return MMSYSERR_INVALPARAM;
+ if (!fnCallback) + return MMSYSERR_INVALPARAM; + if (pafda->cbStruct < sizeof(*pafda)) return MMSYSERR_INVALPARAM;
- memset(&afdw, 0, sizeof(afdw)); afdw.cbStruct = sizeof(afdw); afdw.dwFormatIndex = pafda->dwFormatIndex; afdw.dwFormatTag = pafda->dwFormatTag; + afdw.fdwSupport = pafda->fdwSupport; afdw.pwfx = pafda->pwfx; afdw.cbwfx = pafda->cbwfx;
This no longer initializes the szFormat member. Unless there's a compelling reason not to initialize it, I'd rather continue to do so in case it doesn't get filled during acmFormatDetails.
@@ -639,6 +652,10 @@ MMRESULT WINAPI acmFormatEnumW(HACMDRIVER had, PACMFORMATDETAILSW pafd, if (fdwEnum & (ACM_FORMATENUMF_CONVERT|ACM_FORMATENUMF_INPUT|ACM_FORMATENUMF_OUTPUT)) FIXME("Unsupported fdwEnum values %08x\n", fdwEnum);
+ acmMetrics((HACMOBJ)had, ACM_METRIC_MAX_SIZE_FORMAT, &cbwfxMax); + if (pafd->cbwfx < cbwfxMax) + return MMSYSERR_INVALPARAM; +
Please add error checking here. Andrew
participants (1)
-
Andrew Eikum