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