The cause might be a Null pointer into strlenW as below
::stack libwine.so.1.0`strlenW+0xf(0, 7bdef160, 7fbf8612, 7bdeef28) kernel32.dll.so`lstrlenW+0x34(0, 0, 1, 0, 80, 0) 0x7da74480(6a8c3648, 0, 0, 7da801d4, 7f09f998, 3) 0x7da65e08(2, 0, 0) msi.dll.so`ACTION_CallDllFunction+0x21c(6a8c090c, 7ffc1598, 7bdef4a8, 7f02f044) msi.dll.so`DllThread+0x79(6a8c090c, 7ffc1598, 7bdef558, 7ffa0a85, 7f02f038, 6a8c090c) 0x7ffa09fe(7f02f038, 6a8c090c, 0, 7ffa0a10) ntdll.dll.so`call_thread_func+0x85(7f02f038, 6a8c090c, 7bdeffd8, 7ffa0c34, 0, 0) ntdll.dll.so`start_thread+0x12d(7da80fb8) libc.so.1`_thr_setup+0x4e(7e770a00) libc.so.1`_lwp_start(7e770a00, 0, 0, 7bdefff8, d0dc5ca0, 7e770a00
::dis libwine.so.1.0`strlenW+0xf: cmpw $0x0,(%eax)
but eax = 0
libwine.so.1.0`strlenW+0x13: je +0xa <libwine.so.1.0`strlenW+0x1d> libwine.so.1.0`strlenW+0x15: leal -0x4(%ebp),%eax libwine.so.1.0`strlenW+0x18: addl $0x2,(%eax) libwine.so.1.0`strlenW+0x1b: jmp -0xf <libwine.so.1.0`strlenW+0xc> libwine.so.1.0`strlenW+0x1d: movl 0x8(%ebp),%edx libwine.so.1.0`strlenW+0x20: movl -0x4(%ebp),%eax libwine.so.1.0`strlenW+0x23: subl %edx,%eax libwine.so.1.0`strlenW+0x25: sarl $0x1,%eax libwine.so.1.0`strlenW+0x27: leave libwine.so.1.0`strlenW+0x28: ret
Bob