[PATCH] dmloader: fixed some pointer read/write checks (Coverity)

Marcus Meissner marcus at jet.franken.de
Sat Jan 31 16:36:44 CST 2009


Hi,

CID 149 had a curious NULL ptr check. I just removed the
the not so good checks it did.
There are more IsBad*Ptr in this file I did not touch.

Ciao, Marcus
---
 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);
 		
-- 
1.5.6



More information about the wine-patches mailing list