summaryrefslogtreecommitdiffstats
path: root/headers.c
diff options
context:
space:
mode:
authorThomas Roessler <roessler@does-not-exist.org>2001-05-11 11:04:55 +0000
committerThomas Roessler <roessler@does-not-exist.org>2001-05-11 11:04:55 +0000
commit0a41d00b51975a276b4c35cebe4d4e6e0d837d5a (patch)
tree3284ba706d00b603dd2d3571a4fdc904fecbb73f /headers.c
parente46d6d630de9b29b118cdb4602904cb4fc8222ec (diff)
Fix a memory leak in mutt_free_envelope(); avoid dangling pointers
in header editing.
Diffstat (limited to 'headers.c')
-rw-r--r--headers.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/headers.c b/headers.c
index 0dab00ee..6b7c084b 100644
--- a/headers.c
+++ b/headers.c
@@ -109,11 +109,15 @@ void mutt_edit_headers (const char *editor,
/* restore old info. */
n->references = msg->env->references;
msg->env->references = NULL;
+
mutt_free_envelope (&msg->env);
- msg->env = n;
+ msg->env = n; n = NULL;
+
+ if (!msg->env->in_reply_to)
+ mutt_free_list (&msg->env->references);
mutt_expand_aliases_env (msg->env);
-
+
/* search through the user defined headers added to see if either a
* fcc: or attach-file: field was specified.
*/
@@ -199,7 +203,4 @@ void mutt_edit_headers (const char *editor,
mutt_free_list (&tmp);
}
}
-
- if (!msg->env->in_reply_to)
- mutt_free_list (&msg->env->references);
}