http://bugs.winehq.org/show_bug.cgi?id=19760
Juan Lang juan_lang@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |rpc
--- Comment #1 from Juan Lang juan_lang@yahoo.com 2009-08-17 10:29:34 ---
From the crash log:
=>0 0xb7d76323 strlen+0x33() in libc.so.6 (0x0094e7a8) 1 0x7ee3ad03 RpcEpRegisterW+0x40(IfSpec=0x407018, BindingVector=0x14dac0, UuidVector=(nil), Annotation=(nil)) [/home/test/wine-git/dlls/rpcrt4/rpc_epmap.c:292] in rpcrt4 (0x0094e7d8)
Looking at rpc_epmap.c, RpcEpRegisterW calls RpcEpRegisterA. Note that both Uuidvector and Annotation are NULL. Taking a gander at RpcEpRegisterA:
for (i = 0; i < BindingVector->Count; i++) { unsigned j; RpcBinding* bind = BindingVector->BindingH[i]; for (j = 0; j < (UuidVector ? UuidVector->Count : 1); j++) { int len = strlen((char *)Annotation);
That is, Annotation is always dereferenced, even if it's NULL, while UuidVector is checked whether it might be NULL. So I'm going to go out on a limb and say the bug is in rpcrt4's RpcEpRegisterA, but it need some tests to fix it even if I'm correct.