Date: Tue, 16 Jun 1998 20:01:34 +1200 (NZST) From: Eric Gillespie To: Pavel Ozerski cc: opendos AT delorie DOT com Subject: Re: The bug in CHKDSK? In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Precedence: bulk On Sat, 13 Jun 1998, Pavel Ozerski wrote: :: "contains an invalid cluster.contains an invalid cluster.contains ::an invalid cluster... over and over again repeated Just to add to what I said yesterday (whatever yesterday means in your timezone) the reason for "contains an invalid cluster.contains an invalid" etc etc - is because the entries get stored as follows: 1st byte: if 00 - means no entry if 01 - means a LFN (which CHKDSK doesn't understand) if 02 - also LFN (also 03 .. 0a - however long the name is) if E5 - means Deleted entry, no problem for CHKDSK The critical ones are 01 up to about 2F (that's a guess, by the way...) because if a DOS program sees this in the first byte, it basically disregards anything else in the entry and turns it into an empty string. Lets say that the print routine for CHKDSK is written as such: if(error_cluster) { printf("%scontains an invalid cluster.", bad_Filename); ... } As the %s is being handed an empty string, it prints it, '' then the rest of the sentence... So that's a bit more of an explanation - if someone needs to correct me on any points, feel free to do so - my mail is now well sorted out (now all I need is the uucp News... 8-) Cheers, The Viking, running Linux (and OpenDOS) in Christchurch. ($FunnyMail back real soon now...)