From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:34448) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SeiJU-0000VO-1H for qemu-devel@nongnu.org; Wed, 13 Jun 2012 03:48:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SeiJP-00032J-Oc for qemu-devel@nongnu.org; Wed, 13 Jun 2012 03:48:23 -0400 Received: from cantor2.suse.de ([195.135.220.15]:57042 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SeiJP-00031X-I3 for qemu-devel@nongnu.org; Wed, 13 Jun 2012 03:48:19 -0400 Message-ID: <4FD846E8.5010601@suse.de> Date: Wed, 13 Jun 2012 09:53:12 +0200 From: Alexander Graf MIME-Version: 1.0 References: <1338984323-21914-1-git-send-email-jfrei@de.ibm.com> <1338984323-21914-8-git-send-email-jfrei@de.ibm.com> <4FD72D75.4050907@suse.de> <1339572458.3591.34.camel@BR8HFPP0.boeblingen.de.ibm.com> In-Reply-To: <1339572458.3591.34.camel@BR8HFPP0.boeblingen.de.ibm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 7/8] s390: Add SCLP vt220 console support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Heinz Graalfs Cc: Jens Freimann , Cornelia Huck , Jens Freimann , qemu-devel Heinz Graalfs wrote: > On Tue, 2012-06-12 at 13:52 +0200, Alexander Graf wrote: > >> On 06/06/2012 02:05 PM, Jens Freimann wrote: >> >>> From: Heinz Graalfs >>> >>> [...] >>> +static void chr_read_vt220(void *opaque, const uint8_t *buf, int size) >>> +{ >>> + char *offset; >>> + >>> + if (!sclp_console_data_vt220) { >>> + size_buffer = 2 * size; >>> >> Why 2*? >> >> > > OK, will change to exact size plus 1 for trailing 0 > This happens in more than one place btw :). > > >>> + free(sclp_console_data_vt220); >>> + size_buffer = 2 * size; >>> + sclp_console_data_vt220 = malloc(size_buffer); >>> + } >>> + offset = sclp_console_data_vt220; >>> + if (offset) { >>> + memcpy(offset, buf, size); >>> + offset += size; >>> + *offset = '\0'; >>> >> How do you know you're not out of bounds? >> >> > OK, size + 1 > I was more thinking of the memcpy(some_variable, ..., n) where you never check if available_space(some_variable) > n, no? Alex