Home | History | Annotate | Download | only in fsck_msdos
History log of /src/sbin/fsck_msdos/boot.c
RevisionDateAuthorComments
 1.27  28-Aug-2022  mlelstv fix 32bit builds
 1.26  28-Aug-2022  mlelstv Fix writing of corrected fsinfo.
Continue when fsinfo has been rewritten.
 1.25  24-Apr-2022  hannken Cast read()/write() result to size_t to make this compile again.
 1.24  23-Apr-2022  mlelstv Support large disk sectors.
 1.23  22-Feb-2020  kamil Avoid unportable shift construct

boot.c:150:29, left shift of 255 by 24 places cannot be represented in type 'int'
boot.c:153:29, left shift of 255 by 24 places cannot be represented in type 'int'
 1.22  11-Jan-2020  christos Don't add the 2 reserved clusters before we determine if we using fat16/fat32.
From FreeBSD: https://reviews.freebsd.org/D23082:

Correct off-by-two issue when determining FAT type.

In the code we used NumClusters as the upper (non-inclusive) boundary
of valid cluster number, so the actual value was 2 (CLUST_FIRST) more
than the real number of clusters. This causes a FAT16 media with
65524 clusters be treated as FAT32 and might affect FAT12 media with
4084 clusters as well.

To fix this, we increment NumClusters by CLUST_FIRST after the type
determination.
 1.21  08-Feb-2018  dholland branches: 1.21.4;
Typos.
 1.20  02-May-2016  jakllsch The on-disk FAT array does not include anything before CLUST_FIRST,
compensate in size check.

This was tickled by my SanDisk Sansa Clip 4GB, which exactly filled the FAT array.
 1.19  02-Jan-2015  mlelstv Avoid mixing cluster numbers and sector numbers. Makes code more readable.
 1.18  04-Nov-2014  msaitoh Add #include <inttypes.h> for intmax_t to fix compile error.
 1.17  03-Nov-2014  jakllsch ClusterOffset actually needs to be able to be negative.
 1.16  07-Jul-2014  christos branches: 1.16.2;
From: http://marc.info/?l=openbsd-tech&m=140354518512871&w=2
more consistency checks
 1.15  11-Apr-2009  lukem branches: 1.15.12; 1.15.22;
fix sign-compare issues
 1.14  13-Jun-2008  martin branches: 1.14.4;
Move to 2 clause license, approved by Wolfgang Solfrank.
 1.13  19-Mar-2007  gdt branches: 1.13.12; 1.13.14; 1.13.16;
Change mismatch of bytes 11 to 90 to be a warning, not an error, and
print out the values of the bytes that do not match.
Add comment explaining that there is no documented rationale for the
check.

fsck_msdos checks that several bytes are equal in the primary and
backup bootblock. There is no documented rationale. The kernel does
not enforce this when mounting a filesystem. I have a FAT32
filesystem on my disk (mounted as /share) which fails this check, but
is accepted by both Windows XP and NetBSD. My volume differs in bytes
71-81. The primary contains "SHARE " and the backup NUL bytes.

Further, fsck_msdos does not have code to repair the mismatch. As a
result such filesystems can be used not checked.
 1.12  10-Mar-2007  hubertf - removes unused ctype.h header
- correct comment in mount_nfs/getnfsargs.c: s/Nead/Need/

From: Slava Semushin <php-coder@altlinux.ru>
 1.11  05-Jun-2006  christos - don't leak memory on allocation failure.
- s/perror/perr and print how much we were trying to allocate.
 1.10  19-Jan-2005  xtraeme Kill __P(), ANSIfy, remove main() prototype.
 1.9  24-Jul-2003  ws Only compare the interesting part of the bootblock with its backup.
 1.8  22-Dec-2001  augustss Allow check to proceed with bad backup boot block if we're doing a readonly
check.
 1.7  26-Jul-2001  wiz Various typos in comments (neccessary, sceme, choise, ...).
 1.6  06-Oct-1998  ws Since M$ doesn't maintain the FSINFO block correctly,
don't treat errors there as modifications.
 1.5  17-Oct-1997  ws Add support for FAT32
Support dropping lost cluster chains (on request by Christoph Badura)
While being here, fix some minor bugs, mostly with format strings
 1.4  14-Sep-1997  lukem * cleanup for WARNS=1
* getopt returns -1 not EOF
* cleanup manpage
 1.3  27-Sep-1996  christos util -> fsutil
 1.2  23-Sep-1996  christos - use error printing code from fsck(8)
- remove fstab walking code
- add missing prototypes
- add missing argument in dir.c near "Truncate", where delete() was being
called with fewer args. I think the missing argument should be a zero,
but Wolfgang should check...
 1.1  14-May-1996  ws Add fsck utility for msdosfs
 1.13.16.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.13.14.1  17-Jun-2008  yamt sync with head.
 1.13.12.1  29-Jun-2008  mjf Sync with HEAD.
 1.14.4.1  13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.15.22.1  10-Aug-2014  tls Rebase.
 1.15.12.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.16.2.1  14-Nov-2014  martin Pull up following revision(s) (requested by jakllsch in ticket #234):
sbin/fsck_msdos/boot.c: revision 1.18
sbin/fsck_msdos/dosfs.h: revision 1.7
sbin/fsck_msdos/boot.c: revision 1.17
ClusterOffset actually needs to be able to be negative.
Add #include <inttypes.h> for intmax_t to fix compile error.
 1.21.4.1  08-Apr-2020  martin Merge changes from current as of 20200406

RSS XML Feed