[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