From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pierre AUBERT Date: Tue, 16 Mar 2004 08:58:46 +0100 Subject: [U-Boot-Users] PATCH: bug fix in IDE identification strings In-Reply-To: <1079372756.3116.12.camel@tt-devel.ultra.si> References: <20040315133304.70475C0655@atlas.denx.de> <1079372756.3116.12.camel@tt-devel.ultra.si> Message-ID: <4056B3B6.70808@staubli.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi, Leon KUKOVEC wrote: >Hi Wolfgang, > >On Mon, 2004-03-15 at 14:32, Wolfgang Denk wrote: > > >>In message <4055AA27.3010805@staubli.com> you wrote: >> >> >>>The attached patch fixes a bug in the ide identification string copy. >>> >>> >>I may be missing something - but why do we copy these strings in the >>first place? Who is using them? (and where?) >> >> > >The block_dev_desc_t structure defines vendor[40], product[20] and >revision[8] - same as it is defined in hd_driveid_t. > >ident_cpy's description says that it will copy the string and >terminate it, but it can't in the case where all 8 bytes of revision >are occupied - since the buffers are equal size. > > My hard disk has a 8 bytes revision string. In this case, u-boot crashes in init_part because the block_read field of the block_dev_desc_t structure has been partially erased by the ending null of the revision string. This crash didn't occured with the revison 1.5 of include/part.h because the field removable was beetween fields revision and block_read. >Therefore Pierre's patch is correct, but instead of hardcoded values >8, 40, 20 I would rather see sizeof (iop->fw_rev) etc. > > The attached patch replaces my previous with this modification. >I noticed the same thing today when I was testing the PCMCIA >patch that I'm about to send for PXA. > > > Best regards -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: u-boot-ide-ident.patch Url: http://lists.denx.de/pipermail/u-boot/attachments/20040316/c9201d4a/attachment.txt