From: Wilfried Goesgens Date: Sun, 20 Jan 2013 19:12:42 +0000 (+0100) Subject: MSG: fix duplication of messages. X-Git-Tag: v8.20~146 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=9d086d4051a4b6c5cafc3b06b231ec28f24c8b6d MSG: fix duplication of messages. --- 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) {