From: Marcel Holtmann Date: Sat, 30 Oct 2010 23:23:24 +0000 (+0200) Subject: Ensure that chunk buffer is '\0' terminated X-Git-Tag: 2.0_alpha~2227 X-Git-Url: http://review.tizen.org/git/?p=framework%2Fconnectivity%2Fconnman.git;a=commitdiff_plain;h=65bbd6ca12d11c48d0333465076769abbf67476e Ensure that chunk buffer is '\0' terminated --- diff --git a/gweb/gweb.c b/gweb/gweb.c index bdf90da..02bc659 100644 --- a/gweb/gweb.c +++ b/gweb/gweb.c @@ -323,7 +323,7 @@ static gboolean received_data(GIOChannel *channel, GIOCondition cond, } status = g_io_channel_read_chars(channel, session->line_offset, - session->line_space, &bytes_read, NULL); + session->line_space - 1, &bytes_read, NULL); debug(session->web, "status %u bytes read %zu", status, bytes_read); @@ -336,6 +336,7 @@ static gboolean received_data(GIOChannel *channel, GIOCondition cond, } if (session->header_done == TRUE) { + session->line_buffer[bytes_read] = '\0'; session->result.length = bytes_read; call_result_func(session, 100); return TRUE; @@ -359,6 +360,7 @@ static gboolean received_data(GIOChannel *channel, GIOCondition cond, if (count == 0) { const void *ptr = session->current_line; + session->current_line[bytes_read - consumed] = '\0'; session->header_done = TRUE; session->result.buffer = ptr; session->result.length = bytes_read - consumed;