X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmsgbase.c;h=e9855ea42b12afdb8f30e484217ef460a9c3645c;hb=9d086d4051a4b6c5cafc3b06b231ec28f24c8b6d;hp=78fda6fa2b9873b649a05c0e44d01114fbf76950;hpb=1e991a40e1f138a787bda455b4011359f33ea9d5;p=citadel.git 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) {