From 00117f91e48870bcc339b4b481306735e946fa23 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Sun, 13 Nov 2016 05:50:30 +0000 Subject: [PATCH] smb_addvote() now requires that the caller setup the msg.hdr.thread_back value first (performing any reply_id look-up necessary). That functionality was moved to postmsg.cpp->votemsg(). --- src/smblib/smbadd.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/src/smblib/smbadd.c b/src/smblib/smbadd.c index c982a979a5..45b2aac84a 100644 --- a/src/smblib/smbadd.c +++ b/src/smblib/smbadd.c @@ -321,7 +321,6 @@ int SMBCALL smb_addmsg(smb_t* smb, smbmsg_t* msg, int storage, long dupechk_hash int SMBCALL smb_addvote(smb_t* smb, smbmsg_t* msg, int storage) { int retval; - smbmsg_t remsg; if(!SMB_IS_OPEN(smb)) { safe_snprintf(smb->last_error, sizeof(smb->last_error), "msgbase not open"); @@ -334,27 +333,18 @@ int SMBCALL smb_addvote(smb_t* smb, smbmsg_t* msg, int storage) if(!(msg->hdr.attr&MSG_VOTE)) return SMB_ERR_HDR_ATTR; + if(msg->hdr.thread_back == 0) + return SMB_ERR_HDR_FIELD; + msg->hdr.type = SMB_MSG_TYPE_VOTE; if(msg->hdr.when_imported.time == 0) { msg->hdr.when_imported.time = (uint32_t)time(NULL); - msg->hdr.when_imported.zone = 0; /* how do we detect system TZ? */ + msg->hdr.when_imported.zone = 0; } if(msg->hdr.when_written.time == 0) /* Uninitialized */ msg->hdr.when_written = msg->hdr.when_imported; - /* Look-up thread_back if RFC822 Reply-ID was specified */ - if(msg->hdr.thread_back == 0 && msg->reply_id != NULL) { - if(smb_getmsgidx_by_msgid(smb, &remsg, msg->reply_id) == SMB_SUCCESS) - msg->hdr.thread_back = remsg.idx.number; /* needed for threading backward */ - } - - /* Look-up thread_back if FTN REPLY was specified */ - if(msg->hdr.thread_back == 0 && msg->ftn_reply != NULL) { - if(smb_getmsgidx_by_ftnid(smb, &remsg, msg->ftn_reply) == SMB_SUCCESS) - msg->hdr.thread_back = remsg.idx.number; /* needed for threading backward */ - } - retval = smb_addmsghdr(smb, msg, storage); return retval; -- GitLab