From 48c7dac00902ceab300bfaff82731bb2dadd77cc Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Tue, 12 Apr 2011 16:32:11 +0200 Subject: serial: ensure response array is empty before setting cached reply --- src/mm-serial-port.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src') diff --git a/src/mm-serial-port.c b/src/mm-serial-port.c index b2cdfa22..8b683dd3 100644 --- a/src/mm-serial-port.c +++ b/src/mm-serial-port.c @@ -571,6 +571,17 @@ mm_serial_port_queue_process (gpointer data) const GByteArray *cached = mm_serial_port_get_cached_reply (self, info->command); if (cached) { + /* Ensure the response array is fully empty before setting the + * cached response. */ + if (priv->response->len > 0) { + g_warning ("%s: (%s) response array is not empty when using " + "cached reply, cleaning up %u bytes", + __func__, + mm_port_get_device (MM_PORT (self)), + priv->response->len); + g_byte_array_set_size (priv->response, 0); + } + g_byte_array_append (priv->response, cached->data, cached->len); mm_serial_port_got_response (self, NULL); return FALSE; -- cgit v1.2.3-70-g09d2