delorie.com/archives/browse.cgi   search  
Mail Archives: opendos/1998/06/16/06:37:46

Date: Tue, 16 Jun 1998 20:01:34 +1200 (NZST)
From: Eric Gillespie <viking AT flying-brick DOT caverock DOT net DOT nz>
To: Pavel Ozerski <pavel AT insect DOT ief DOT spb DOT su>
cc: opendos AT delorie DOT com
Subject: Re: The bug in CHKDSK?
In-Reply-To: <AAZbeWrC11@insect.ief.spb.su>
Message-ID: <Pine.LNX.3.96.980616185613.439B-100000@brick.flying-brick.caverock.net.nz>
MIME-Version: 1.0

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...)


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019