75 Commits

Author SHA1 Message Date
Daniel Baumann
2a3bef84fb Releasing version 3.0.8.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:51:14 +01:00
Daniel Baumann
726c02daf6 Removing some cruft in end-comments.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:51:12 +01:00
Steven J. Magnani
a5961d7344 When compiling a 32-bit version of dosfstools on an x86_64 machine,
the resulting applications report strange errors on "large" (> 2 GiB)
partitions:

  Seek to -2118967808:Invalid argument

  Warning: Filesystem is FAT32 according to fat_length and fat32_length fields,
  but has only 8613 clusters, less than the required minimum of 65525.
  This may lead to problems on some systems.

This appears to be due to compilation with a 32-bit off_t and lseek() library
function.

Use lseek64 for positioning, and change some suspect uses of off_t to loff_t.

Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:51:11 +01:00
Steven J. Magnani
bbb25bf11a If dosfsck is run in read-only mode (-n), exit with code 0
if the only issue found is an uninitialized free cluster summary.

Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:51:10 +01:00
Steven J. Magnani
1cae726e2d On x86_64, dosfsck incorrectly claims that a free_cluster summary of
0xFFFFFFFF, defined by Microsoft to be "uninitialized," is wrong.

Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:51:09 +01:00
H. Peter Anvin
62f806a292 mkdosfs: correct alignment of the root directory.
Correct the code to align the root directory; it was broken before
since bs.dir_entries had already been set at the point of alignment.
This patch removes the dual use of bs.dir_entries and root_dir_entries
to carry the same information: the information is carried in
root_dir_entires exclusively, and then bs.dir_entries is set inside
setup_tables() at a late point.

The code to align the root directory is also wrapped in
if (align_structures); this avoids rounding the number of root
directory entries up to a whole sector when used with -a
(i.e. preserves the previous behavior.)

Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:51:07 +01:00
H. Peter Anvin
8825bda33b mkdosfs: improve wording in the man page for the -a option.
Improve the English language used in the man page for the -a (no
align) option to mkdosfs.

Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:51:06 +01:00
Daniel Baumann
21d3f8192a Adding reference to dosfslable in mkdosfs manpage.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:51:05 +01:00
H. Peter Anvin
247ba068d4 mkdosfs: by default align all structures to cluster boundaries
Align all data structures (reserved sectors, FATs, root directory for
FAT12/16) to an even multiple of the cluster size. This means that if
the partition is aligned, so will all clusters be. This adds
significant performance for anything where the physical sector size is
larger than the logical sector size, e.g. flash media or large-sector
hard disks.

Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:51:04 +01:00
Daniel Baumann
171bc07b0c Releasing version 3.0.7.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:51:03 +01:00
Ben Hutchings
28708fc8a6 Fixing dosfslabel to set volume label in the right place,
see Debian bug #559985.

Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:51:02 +01:00
Lubomir Rintel
2c405dd8da Fixing out-of bound writes.
Firstly, packed attribute is added to the structure so that extension
is guarranteed to immediately follow name for the cross-name-extension
reads to succeed.

Secondly, writes into dir_entry->name that span through the extension as
well are split into two, so that FORTIFY_SOURCE's bound checking does
not abort dosfsck. There also was an off-by-one error in auto_rename()'s
sprintf().

Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:51:01 +01:00
San Mehat
b8f3efed9c Adding custom exit code in dosfsck for the case where the FS is read only.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:59 +01:00
Daniel Baumann
0657e01898 Releasing version 3.0.6.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:56 +01:00
Steven J. Magnani
bc84254457 Attempt to improve clarity of the orphan cluster reclaim code.
Minor optimization - remove some unnecessary checking.

Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:55 +01:00
Steven J. Magnani
8054b4a371 Close hole that permitted clusters to link to (invalid) cluster 1.
If an orphan chain that linked to cluster 1 was reclaimed to a file,
deletion of the file would result in a filesystem panic.

Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:51 +01:00
Steven J. Magnani
e51af88eed Fix erroneous report of huge number of clusters in use on big-endian
systems when the FSINFO free cluster count is reset.

Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:49 +01:00
Daniel Baumann
16ba63f98a Releasing version 3.0.5.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:48 +01:00
Piotr Kaczuba
28ff9d967c Signed/unsigned char mismatch in check.c causes false positives
in bad_name() and can result in data loss, see Debian bug #538758.

Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:46 +01:00
Andrew Tridgell
d42a27373a Update to new kernel patches that add FAT_NO_83NAME flag.
See http://lkml.org/lkml/2009/7/20/425 and
http://lkml.org/lkml/2009/7/20/424 for more information.

Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:45 +01:00
Daniel Baumann
dd0f0b5392 Releasing version 3.0.4.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:44 +01:00
Andrew Tridgell
b9f37a61a6 Modify dosfstools to support the dummy 8.3 short filename values
used by Linux systems with the VFAT_FS_DUALNAMES option disabled.

See http://lkml.org/lkml/2009/6/26/313 and
http://lkml.org/lkml/2009/6/26/314 for more information.

Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:43 +01:00
Paul Rupe
ecd15e86e8 Fixing "Too many files need repair" error during fsck.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:42 +01:00
Daniel Baumann
7c16098be2 Releasing version 3.0.3.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:40 +01:00
Daniel Baumann
b396dcfb09 Also declaring arm as an unaligned architecture, see Debian bug #502961.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:39 +01:00
Steven J. Magnani
ff1b24e91d Adding support for limited-memory embedded systems.
This patch reorganizes heap memory usage by dosfsck and mkdosfs
to support limited-memory embedded systems - in particular, those
based on Xilinx's Microblaze processor. It also adds a few comments.

Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:38 +01:00
Mike Frysinger
89f0b727b5 Declaring Blackfin as an unaligned architecture.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:37 +01:00
Daniel Baumann
b54a8a46ef Releasing version 3.0.2.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:36 +01:00
Hiroaki Ishizawa
95005294d8 dosfsck corrupts root directory when fs->nfats is 1.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:34 +01:00
Stepan Kasal
043f8a8fb1 src/dosfslabel.c (main): After writing the label, exit code should be 0.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:33 +01:00
Daniel Baumann
017da27f1a Also installing ChangeLog in install-doc target of Makefile.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:32 +01:00
Stepan Kasal
1c76f0faf8 Makefile: Do not clobber time stamps of doc files.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:31 +01:00
Daniel Baumann
df2d2f1789 Releasing version 3.0.1.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:30 +01:00
Daniel Baumann
17b269b03d Applying Fedoras dosfstools-vfat-timingfix.diff from Bill Nottingham
<notting@redhat.com> to fix vfat timing issue. See
https://bugzilla.redhat.com/show_bug.cgi?id=448247 for more information.

Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:28 +01:00
Ulrich Mueller
e597cafef4 Patch to check for bad number of clusters in dosfsck:
* FAT16 filesystems with 65525 clusters or more will be rejected
    (Before, this was not tested for. Up to 65535 clusters were accepted
    as good).

  * For FAT32 filesystems with less than 65525 a warning message will be
    output.

Macro MSDOS_FAT12 is now replaced by FAT12_THRESHOLD to make it
consistent with the definition in mkdosfs and to remove the dependency
on the kernel version.

Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:27 +01:00
Dann Frazier
90102bcd54 Changing some wording to make the indended meaning of "full-disk device"
more obvious.

Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:26 +01:00
Daniel Baumann
21e9ba0a43 Releasing version 3.0.0.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:25 +01:00
Daniel Baumann
eaf145d51b Adding GPL headers to all files.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:23 +01:00
Daniel Baumann
0826117103 Adding new GPL license file.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:22 +01:00
Daniel Baumann
f8d6127d8b Redoing Makefile from scratch.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:21 +01:00
Daniel Baumann
b4feb7319f Removing whitespaces in all files at EOL and EOF.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:20 +01:00
Daniel Baumann
1410138d03 Adding Debians dosfslabel.8 manpage from Francois Wendling
<frwendling@free.fr>.

Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:19 +01:00
Daniel Baumann
f62e7f27a7 Updating version.h includes to new location of version.h file.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:17 +01:00
Daniel Baumann
32e5952f4f Removing old lsm file.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:16 +01:00
Daniel Baumann
25a433bd3d Removing old cvsignore files.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:15 +01:00
Daniel Baumann
acac13fb85 Removing old build file.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:14 +01:00
Daniel Baumann
3ecdd21225 Removing old GPL license files.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:13 +01:00
Daniel Baumann
f183d0eaa9 Unifying dosfsck and mkdosfs Makefiles in common src/Makefile.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:12 +01:00
Daniel Baumann
61e7466965 Unifying dosfsck and mkdosfs sources in common src directory.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:11 +01:00
Daniel Baumann
7552d57527 Unifying dosfsck and mkdosfs manpages in common man directory.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
2013-01-23 12:50:09 +01:00