raop: Fix memory leak

The return memory of the pa_strbuf_tostring_free() should be freed.
pa_headerlist_puts() saves its own copy.
This commit is contained in:
Andy Shevchenko 2009-08-28 15:16:52 +03:00 committed by Lennart Poettering
parent 9011c4e4f7
commit 4e8562c1f1

View file

@ -214,8 +214,10 @@ static void line_callback(pa_ioline *line, const char *s, void *userdata) {
/* End of headers */
/* We will have a header left from our looping iteration, so add it in :) */
if (c->last_header) {
char *tmp = pa_strbuf_tostring_free(c->header_buffer);
/* This is not a continuation header so let's dump it into our proplist */
pa_headerlist_puts(c->response_headers, c->last_header, pa_strbuf_tostring_free(c->header_buffer));
pa_headerlist_puts(c->response_headers, c->last_header, tmp);
pa_xfree(tmp);
pa_xfree(c->last_header);
c->last_header = NULL;
c->header_buffer = NULL;
@ -240,9 +242,11 @@ static void line_callback(pa_ioline *line, const char *s, void *userdata) {
}
if (c->last_header) {
char *tmp = pa_strbuf_tostring_free(c->header_buffer);
/* This is not a continuation header so let's dump the full
header/value into our proplist */
pa_headerlist_puts(c->response_headers, c->last_header, pa_strbuf_tostring_free(c->header_buffer));
pa_headerlist_puts(c->response_headers, c->last_header, tmp);
pa_xfree(tmp);
pa_xfree(c->last_header);
c->last_header = NULL;
c->header_buffer = NULL;