Owen Rudge : mapi32: Use separate pointer for drafts folder when sending via extended MAPI.
Alexandre Julliard
julliard at winehq.org
Tue Oct 27 09:46:29 CDT 2009
Module: wine
Branch: master
Commit: d6bc1f5e229ce2ad59a5463adb08ddbb17a0f892
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d6bc1f5e229ce2ad59a5463adb08ddbb17a0f892
Author: Owen Rudge <orudge at codeweavers.com>
Date: Mon Oct 26 13:19:05 2009 -0500
mapi32: Use separate pointer for drafts folder when sending via extended MAPI.
This patch fixes a crash in the MAPISendMail extended mail wrapper due
to reusing the "folder" variable for two separate objects.
---
dlls/mapi32/sendmail.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/dlls/mapi32/sendmail.c b/dlls/mapi32/sendmail.c
index 13fb4c7..08aceb0 100644
--- a/dlls/mapi32/sendmail.c
+++ b/dlls/mapi32/sendmail.c
@@ -59,7 +59,7 @@ static ULONG sendmail_extended_mapi(LHANDLE mapi_session, ULONG_PTR uiparam, lpM
IMAPITable* msg_table;
LPSRowSet rows = NULL;
IMsgStore* msg_store;
- IMAPIFolder* folder = NULL;
+ IMAPIFolder* folder = NULL, *draft_folder = NULL;
LPENTRYID entry_id;
LPSPropValue props;
ULONG entry_len;
@@ -151,10 +151,10 @@ static ULONG sendmail_extended_mapi(LHANDLE mapi_session, ULONG_PTR uiparam, lpM
goto logoff;
IMsgStore_OpenEntry(msg_store, props[0].Value.bin.cb, (LPENTRYID) props[0].Value.bin.lpb,
- NULL, MAPI_MODIFY, &obj_type, (LPUNKNOWN *) &folder);
+ NULL, MAPI_MODIFY, &obj_type, (LPUNKNOWN *) &draft_folder);
/* Create a new message */
- if (IMAPIFolder_CreateMessage(folder, NULL, 0, &msg) == S_OK)
+ if (IMAPIFolder_CreateMessage(draft_folder, NULL, 0, &msg) == S_OK)
{
ULONG token;
SPropValue p;
@@ -329,7 +329,7 @@ static ULONG sendmail_extended_mapi(LHANDLE mapi_session, ULONG_PTR uiparam, lpM
{
/* Show the message form (edit window) */
- ret = IMAPISession_ShowForm(session, 0, msg_store, folder, NULL,
+ ret = IMAPISession_ShowForm(session, 0, msg_store, draft_folder, NULL,
token, NULL, 0, status, flags, access,
props->Value.lpszA);
@@ -354,6 +354,7 @@ static ULONG sendmail_extended_mapi(LHANDLE mapi_session, ULONG_PTR uiparam, lpM
}
/* Free up the resources we've used */
+ IMAPIFolder_Release(draft_folder);
IMAPIFolder_Release(folder);
IMsgStore_Release(msg_store);
More information about the wine-cvs
mailing list