Skip to content

Commit c251888

Browse files
committed
oxcmail_parse_reply_to: fix email address- and name assignment
Assign tmp_entry, AFTER vmime:mailbox parsed email_addr has been retrieved. Fixes grommunio/gromox #185 Signed-off-by: umgfoin <[email protected]>
1 parent ad84c9f commit c251888

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

lib/mapi/oxcmail.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -511,9 +511,7 @@ static BOOL oxcmail_parse_reply_to(const char *field, TPROPVAL_ARRAY *pproplist)
511511
return FALSE;
512512
tmp_entry.flags = 0;
513513
tmp_entry.version = 0;
514-
tmp_entry.pdisplay_name = email_addr.display_name;
515514
tmp_entry.paddress_type = deconst("SMTP");
516-
tmp_entry.pmail_address = email_addr.addr;
517515
/* Ensure the fields are a classic array and thus do not change address */
518516
static_assert(std::size(email_addr.display_name) > 0);
519517
static_assert(std::size(email_addr.addr) > 0);
@@ -541,6 +539,8 @@ static BOOL oxcmail_parse_reply_to(const char *field, TPROPVAL_ARRAY *pproplist)
541539
uint32_t offset1 = ext_push.m_offset;
542540
if (ext_push.advance(sizeof(uint32_t)) != pack_result::ok)
543541
return FALSE;
542+
tmp_entry.pmail_address = email_addr.addr;
543+
tmp_entry.pdisplay_name = email_addr.display_name;
544544
tmp_entry.ctrl_flags = MAPI_ONE_OFF_NO_RICH_INFO | MAPI_ONE_OFF_UNICODE;
545545
auto status = ext_push.p_oneoff_eid(tmp_entry);
546546
if (status == pack_result::charconv) {
@@ -1253,6 +1253,10 @@ static BOOL oxcmail_enum_mail_head(const char *key, const char *field, void *ppa
12531253
PR_ATTACH_PAYLOAD_CLASS : PR_ATTACH_PAYLOAD_CLASS_A;
12541254
if (penum_param->pmsg->proplist.set(tag, field) != ecSuccess)
12551255
return FALSE;
1256+
} else if (strcasecmp(key, "x-spam-flag") == 0 && strncasecmp(field, "no", 2) != 0) {
1257+
tmp_byte = 1;
1258+
if (penum_param->pmsg->proplist.set(PR_SPAM_FLAG, &tmp_byte) != 0)
1259+
return FALSE;
12561260
} else if (strcasecmp(key, "X-MS-Exchange-Organization-PRD") == 0) {
12571261
uint32_t tag = str_isascii(field) ?
12581262
PR_PURPORTED_SENDER_DOMAIN : PR_PURPORTED_SENDER_DOMAIN_A;

0 commit comments

Comments
 (0)