Module: wine Branch: master Commit: 2aebb568a8ffb749b0249907f8b26c8fa83734d2 URL: http://source.winehq.org/git/wine.git/?a=commit;h=2aebb568a8ffb749b0249907f8...
Author: Marcus Meissner marcus@jet.franken.de Date: Sat Jan 31 23:36:44 2009 +0100
dmloader: Fixed some pointer read/write checks (Coverity).
---
dlls/dmloader/container.c | 28 +++++++--------------------- 1 files changed, 7 insertions(+), 21 deletions(-)
diff --git a/dlls/dmloader/container.c b/dlls/dmloader/container.c index 081fcce..3cd166e 100644 --- a/dlls/dmloader/container.c +++ b/dlls/dmloader/container.c @@ -125,29 +125,15 @@ static HRESULT WINAPI IDirectMusicContainerImpl_IDirectMusicContainer_EnumObject
TRACE("(%p, %s, %d, %p, %p)\n", This, debugstr_dmguid(rguidClass), dwIndex, pDesc, pwszAlias);
- /* check if we can write to whole pDesc */ - if (pDesc) { - if (IsBadReadPtr (pDesc, sizeof(DWORD))) { - ERR(": pDesc->dwSize bad read pointer\n"); - return E_POINTER; - } - if (pDesc->dwSize != sizeof(DMUS_OBJECTDESC)) { - ERR(": invalid pDesc->dwSize\n"); - return E_INVALIDARG; - } - if (IsBadWritePtr (pDesc, sizeof(DMUS_OBJECTDESC))) { - ERR(": pDesc bad write pointer\n"); - return E_POINTER; - } - } - /* check if wszAlias is big enough */ - if (pwszAlias && IsBadWritePtr (pwszAlias, DMUS_MAX_FILENAME_SIZE)) { - ERR(": wszAlias bad write pointer\n"); - return E_POINTER; + if (!pDesc) + return E_POINTER; + if (pDesc->dwSize != sizeof(DMUS_OBJECTDESC)) { + ERR(": invalid pDesc->dwSize %d\n", pDesc->dwSize); + return E_INVALIDARG; } - + DM_STRUCT_INIT(pDesc); - + LIST_FOR_EACH (pEntry, This->pContainedObjects) { pContainedObject = LIST_ENTRY (pEntry, WINE_CONTAINER_ENTRY, entry);