[Bug 7342] Outlook 97 SR-1 does not start

Wine Bugs wine-bugs at winehq.org
Wed Feb 21 14:29:15 CST 2007


http://bugs.winehq.org/show_bug.cgi?id=7342





------- Additional Comments From focht at gmx.net  2007-21-02 14:29 -------
Created an attachment (id=5044)
 --> (http://bugs.winehq.org/attachment.cgi?id=5044&action=view)
outlook sr2 crash log

Hello,

hope you don't mind if i step in :)

I used Office/Outlook 97 SR2 install for this experiment, probably applies to
SR1 as well.
Modified wine 0.9.31 with MAPIAdminProfiles() patch

Arguments:

WINEDEBUG=+process,+seh,+tid,+loaddll,+mapi
(see attached crash log for full info)

Crashes in outlook dll.
I walked up the stack frames, thankfully frame #4 revealed the cause.

--- snip partial dump/analysis ---

NOTE: var_8 = LPMAPISESSION* lppSession

...

.text:6E1C477A		       push    edi
.text:6E1C477B		       lea     ecx, [ebp+var_8]
.text:6E1C477E		       call    sub_6E1CCB1A
.text:6E1C4783		       lea     ecx, [ebp+var_4]
.text:6E1C4786		       call    sub_6E1E7DA9
.text:6E1C478B		       lea     eax, [ebp+var_8]
.text:6E1C478E		       push    eax		   ; [out]
LPMAPISESSION FAR * lppSession
.text:6E1C478F		       push    [ebp+arg_C]	   ; FLAGS flFlags
.text:6E1C4792		       push    [ebp+arg_8]	   ; LPTSTR
lpszPassword
.text:6E1C4795		       push    [ebp+arg_4]	   ; LPTSTR
lpszProfileName
.text:6E1C4798		       push    [ebp+arg_0]		   ; ULONG
ulUIParam
.text:6E1C479B		       call    MAPILogonEx at 20
.text:6E1C47A0		       test    eax, eax
.text:6E1C47A2		       jl      loc_6E2E9DD8
.text:6E1C47A8		       push    [ebp+var_8]	   ; lppSession 
.text:6E1C47AB		       mov     ecx, esi
.text:6E1C47AD		       call    sub_6E1C4805	   ; <-- dereferencing
lppSession in nested calls 
.text:6E1C47B2		       mov     eax, esi

...

--- snip partial dump/analysis ---

The problem lies in MAPILogonEx() stub which returns "SUCCESS" but does *not*
return a valid pointer to MAPISESSION.
"LPMAPISESSION *session" is an OUT parameter.
 
--- snip wine mapi32_main.c ---

HRESULT WINAPI MAPILogonEx(ULONG_PTR uiparam, LPWSTR profile,
    LPWSTR password, ULONG flags, LPMAPISESSION *session)
{
    FIXME("(0x%08lx %s %p 0x%08x %p) Stub\n", uiparam,
	  debugstr_w(profile), password, flags, session);
    return SUCCESS_SUCCESS;
}

--- snip wine mapi32_main.c ---

You have two options:

1. Fix MAPILogonEx() to return some "failure" code like MAPI_E_LOGON_FAILED
2. Implement all necessary MAPI (session) stuff

Return failure will result in outlook displaying messagbox "logon failure" and
clean exit after confirmation (tested).
Implementing all the necessary MAPI stuff might be a somewhat tedious task ...

Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the wine-bugs mailing list