Fix memory leaks with paste_replace, based on changes from J Raynor.

pull/1/head
nicm 2014-02-17 23:07:03 +00:00
parent 69b7c496ac
commit 6daf06b1ad
3 changed files with 6 additions and 3 deletions

View File

@ -169,6 +169,7 @@ cmd_load_buffer_callback(struct client *c, int closed, void *data)
/* No context so can't use server_client_msg_error. */
evbuffer_add_printf(c->stderr_data, "no buffer %d\n", *buffer);
server_push_stderr(c);
free(pdata);
}
free(data);

View File

@ -131,8 +131,10 @@ paste_replace(struct paste_stack *ps, u_int idx, char *data, size_t size)
{
struct paste_buffer *pb;
if (size == 0)
if (size == 0) {
free(data);
return (0);
}
if (idx >= ARRAY_LENGTH(ps))
return (-1);

View File

@ -1455,8 +1455,8 @@ window_copy_copy_buffer(struct window_pane *wp, int idx, void *buf, size_t len)
if (idx == -1) {
limit = options_get_number(&global_options, "buffer-limit");
paste_add(&global_buffers, buf, len, limit);
} else
paste_replace(&global_buffers, idx, buf, len);
} else if (paste_replace(&global_buffers, idx, buf, len) != 0)
free(buf);
}
void