From 9d086d4051a4b6c5cafc3b06b231ec28f24c8b6d Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Sun, 20 Jan 2013 20:12:42 +0100 Subject: [PATCH] MSG: fix duplication of messages. --- citadel/msgbase.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/citadel/msgbase.c b/citadel/msgbase.c index 78fda6fa2..e9855ea42 100644 --- a/citadel/msgbase.c +++ b/citadel/msgbase.c @@ -1320,6 +1320,7 @@ int DupCMField(int i, struct CtdlMessage *OrgMsg, struct CtdlMessage *NewMsg) if (NewMsg->cm_fields[i] == NULL) return 0; memcpy(NewMsg->cm_fields[i], OrgMsg->cm_fields[i], len); + NewMsg->cm_fields[i][len] = '\0'; return 1; } @@ -1330,13 +1331,13 @@ struct CtdlMessage * CtdlDuplicateMessage(struct CtdlMessage *OrgMsg) if (is_valid_message(OrgMsg) == 0) return NULL; - NewMsg = (struct CtdlMessage *)malloc(sizeof(struct CtdlMessage *)); + NewMsg = (struct CtdlMessage *)malloc(sizeof(struct CtdlMessage)); if (NewMsg == NULL) return NULL; memcpy(NewMsg, OrgMsg, sizeof(struct CtdlMessage *)); - memset(NewMsg->cm_fields, 0, sizeof(NewMsg->cm_fields)); + memset(&NewMsg->cm_fields, 0, sizeof(char*) * 256); for (i = 0; i < 256; ++i) { -- 2.30.2