From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Hawkins Date: Sat, 13 Dec 2008 14:51:43 -0800 Subject: [U-Boot] fat.c:707: warning: array subscript is above array bounds In-Reply-To: <20081213224823.57135832E8A1@gemini.denx.de> References: <20081213221301.C91B0832E8A1@gemini.denx.de> <20081213222225.GN15295@game.jcrosoft.org> <20081213224823.57135832E8A1@gemini.denx.de> Message-ID: <49443C7F.3020003@ovro.caltech.edu> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Wolfgang Denk wrote: > Dear Jean-Christophe PLAGNIOL-VILLARD, > > In message <20081213222225.GN15295@game.jcrosoft.org> you wrote: >>> 705 /* Terminate fs_type string. Writing past the end of vistart >>> 706 is ok - it's just the buffer. */ >>> 707 vistart->fs_type[8] = '\0'; >> why not do something like this >> >> *(vistart + sizeof(volume_info)) = '\0'; > > Because that would be terribly wrong - sizeof(volume_info) is > 23 > (probably 24), and vistart is a pointer volume_info, so you would > probably write some 500+ bytes beyond the end of the buffer. How about something in the same vein then char *c = vistart->fstype; c[8] = '\0'; Cheers, Dave