Rob Shearman : rpcrt4: Handle [out] -only non-conformant strings in stubless servers.
Alexandre Julliard
julliard at winehq.org
Mon Dec 14 09:51:13 CST 2009
Module: wine
Branch: master
Commit: d412bcc3aef1ccec410b82fac74e4e55897d9438
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d412bcc3aef1ccec410b82fac74e4e55897d9438
Author: Rob Shearman <robertshearman at gmail.com>
Date: Sun Dec 13 19:47:55 2009 +0000
rpcrt4: Handle [out]-only non-conformant strings in stubless servers.
---
dlls/rpcrt4/ndr_stubless.c | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/dlls/rpcrt4/ndr_stubless.c b/dlls/rpcrt4/ndr_stubless.c
index 2028fed..5a66c25 100644
--- a/dlls/rpcrt4/ndr_stubless.c
+++ b/dlls/rpcrt4/ndr_stubless.c
@@ -999,6 +999,18 @@ static DWORD calc_arg_size(MIDL_STUB_MESSAGE *pStubMsg, PFORMAT_STRING pFormat)
size = ComplexStructSize(pStubMsg, pFormat);
size *= pStubMsg->MaxCount;
break;
+ case RPC_FC_C_CSTRING:
+ case RPC_FC_C_WSTRING:
+ if (*pFormat == RPC_FC_C_CSTRING)
+ size = sizeof(CHAR);
+ else
+ size = sizeof(WCHAR);
+ if (pFormat[1] == RPC_FC_STRING_SIZED)
+ ComputeConformance(pStubMsg, NULL, pFormat + 2, 0);
+ else
+ pStubMsg->MaxCount = 0;
+ size *= pStubMsg->MaxCount;
+ break;
default:
FIXME("Unhandled type %02x\n", *pFormat);
/* fallthrough */
More information about the wine-cvs
mailing list