Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761919AbXHCDFh (ORCPT ); Thu, 2 Aug 2007 23:05:37 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1758952AbXHCDFb (ORCPT ); Thu, 2 Aug 2007 23:05:31 -0400 Received: from pentafluge.infradead.org ([213.146.154.40]:39829 "EHLO pentafluge.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758315AbXHCDFb (ORCPT ); Thu, 2 Aug 2007 23:05:31 -0400 Date: Fri, 3 Aug 2007 08:47:56 +0530 (IST) From: Satyam Sharma X-X-Sender: satyam@enigma.security.iitk.ac.in To: Jan Engelhardt cc: Guennadi Liakhovetski , linux-kernel@vger.kernel.org Subject: Re: gcc fixed size char array initialization bug - known? In-Reply-To: Message-ID: References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=us-ascii Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 985 Lines: 33 On Thu, 2 Aug 2007, Jan Engelhardt wrote: > On Aug 2 2007 21:55, Guennadi Liakhovetski wrote: > > [...] > > > > struct { > > char c[4]; > > int i; > > } t; > > t.i = 0x12345678; > > strcpy(t.c, c); > > > >and t.i is silently corrupted. Just wanted to ask if this is known, > >really... > > What does this have to do with the kernel? The string "0123" is > generally _five_ characters long, so c[4] is not enough. > Or use strncpy. While we're talking of null-termination of strings, then I bet you generally want to be using strlcpy(), really. Often strncpy() isn't what you want. Of course, if that buffer isn't a string at all, then you should be using memfoo() functions and not strbar() ones in the first place ... - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/