[PATCH] Report errors when [un]marshalling unknown types.
Jeremy White
jwhite at codeweavers.com
Sat Oct 24 14:11:05 CDT 2009
---
dlls/oleaut32/tmarshal.c | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/dlls/oleaut32/tmarshal.c b/dlls/oleaut32/tmarshal.c
index e7d7b89..e81de94 100644
--- a/dlls/oleaut32/tmarshal.c
+++ b/dlls/oleaut32/tmarshal.c
@@ -909,7 +909,7 @@ serialize_param(
}
default:
ERR("Unhandled marshal type %d.\n",tdesc->vt);
- return S_OK;
+ return E_FAIL;
}
}
@@ -1248,7 +1248,8 @@ deserialize_param(
for (i=0;i<adesc->cDims;i++)
arrsize *= adesc->rgbounds[i].cElements;
for (i=0;i<arrsize;i++)
- deserialize_param(
+ {
+ hres = deserialize_param(
tinfo,
readit,
debugout,
@@ -1257,6 +1258,9 @@ deserialize_param(
(DWORD*)((LPBYTE)(arg)+i*_xsize(&adesc->tdescElem, tinfo)),
buf
);
+ if (hres)
+ return hres;
+ }
return S_OK;
}
case VT_SAFEARRAY: {
@@ -1271,7 +1275,7 @@ deserialize_param(
}
default:
ERR("No handler for VT type %d!\n",tdesc->vt);
- return S_OK;
+ return E_FAIL;
}
}
}
@@ -2128,7 +2132,7 @@ TMStubImpl_Invoke(
xargs += _argsize(&elem->tdesc, tinfo);
if (hres) {
ERR("Failed to deserialize param %s, hres %x\n",relaystr(names[i+1]),hres);
- break;
+ goto exit;
}
}
--
1.5.6.5
--------------000106090601040707090302--
More information about the wine-devel
mailing list