summaryrefslogtreecommitdiff
path: root/pine-multipart-alternative-conversion.patch
blob: 842c85fe2d7753a4d197f8689437737d09f4ad9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
--- pine4.64/pine/reply.c
+++ pine4.64/pine/reply.c
@@ -4598,6 +4599,11 @@
 	body			 =  mail_newbody();
 	body->type		 = TYPETEXT;
 	body->contents.text.data = msgtext;
+	/*
+	 * For giving get_body_part_text the charset from which it has
+	 * to convert from, reset afterwards to prevent double free!
+	 */
+	body->parameter		 = part->body.parameter;
 
 	if(!(flags & FWD_ANON)){
 	    forward_delimiter(pc);
@@ -4609,6 +4611,12 @@
 		sect_prefix ? "." : "", flags & FWD_NESTED ? "1." : "",
 		partnum);
 	get_body_part_text(stream, body, msgno, tmp_buf, pc, NULL);
+	/*
+	 * Reset it, otherwise send thinks it's not converted, and since
+	 * the parameter list was not copied, only the pointer to it, it
+	 * it needed to be reset to prevent a second, double free later!
+	 */
+	body->parameter = NULL;
     }
     else
       q_status_message(SM_ORDER | SM_DING, 3, 3,