[dosfstools/f14/master] Fixed dosfslabel on FAT32 (#693662)

Jaroslav Škarvada jskarvad at fedoraproject.org
Tue Apr 5 11:49:36 UTC 2011


commit 7652ca75ba3155d3ff856a77de2e59252788a883
Author: Jaroslav Škarvada <jskarvad at redhat.com>
Date:   Tue Apr 5 13:49:34 2011 +0200

    Fixed dosfslabel on FAT32 (#693662)

 dosfstools-3.0.9-dosfslabel-fat32.patch |   37 +++++++++++++++++++++++++++++++
 dosfstools.spec                         |    8 ++++++-
 2 files changed, 44 insertions(+), 1 deletions(-)
---
diff --git a/dosfstools-3.0.9-dosfslabel-fat32.patch b/dosfstools-3.0.9-dosfslabel-fat32.patch
new file mode 100644
index 0000000..ab28770
--- /dev/null
+++ b/dosfstools-3.0.9-dosfslabel-fat32.patch
@@ -0,0 +1,37 @@
+diff -up dosfstools-3.0.9/src/dosfslabel.c.old dosfstools-3.0.9/src/dosfslabel.c
+--- dosfstools-3.0.9/src/dosfslabel.c.old	2010-01-23 10:13:31.000000000 +0100
++++ dosfstools-3.0.9/src/dosfslabel.c	2011-04-05 10:56:24.642612056 +0200
+@@ -85,7 +85,7 @@ static void check_atari( void )
+ 
+ int main(int argc, char *argv[])
+ {
+-    DOS_FS fs;
++    DOS_FS fs = {0};
+     rw = 0;
+ 
+     char *device = NULL;
+@@ -116,6 +116,8 @@ int main(int argc, char *argv[])
+ 
+     fs_open(device, rw);
+     read_boot(&fs);
++    if (fs.fat_bits == 32)
++        read_fat(&fs);
+     if (!rw) {
+         fprintf(stdout, "%s\n", fs.label);
+         exit(0);
+diff -up dosfstools-3.0.9/src/fat.c.old dosfstools-3.0.9/src/fat.c
+--- dosfstools-3.0.9/src/fat.c.old	2010-01-23 10:13:34.000000000 +0100
++++ dosfstools-3.0.9/src/fat.c	2011-04-05 10:57:22.659733090 +0200
+@@ -89,8 +89,10 @@ void read_fat(DOS_FS *fs)
+     unsigned long total_num_clusters;
+ 
+     /* Clean up from previous pass */
+-    free(fs->fat);
+-    free(fs->cluster_owner);
++    if (fs->fat)
++        free(fs->fat);
++    if (fs->cluster_owner)
++        free(fs->cluster_owner);
+     fs->fat = NULL;
+     fs->cluster_owner = NULL;
+ 
diff --git a/dosfstools.spec b/dosfstools.spec
index 463d100..ebec748 100644
--- a/dosfstools.spec
+++ b/dosfstools.spec
@@ -1,7 +1,7 @@
 Name: dosfstools
 Summary: Utilities for making and checking MS-DOS FAT filesystems on Linux
 Version: 3.0.9
-Release: 5%{?dist}
+Release: 6%{?dist}
 License: GPLv3+
 Group: Applications/System
 Source0: http://www.daniel-baumann.ch/software/dosfstools/%{name}-%{version}.tar.bz2
@@ -9,6 +9,8 @@ URL: http://www.daniel-baumann.ch/software/dosfstools/
 Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 # Fix buffer overflow in alloc_rootdir_entry (#674095)
 Patch0: dosfstools-3.0.9-fix-alloc-rootdir-entry.patch
+# Fix dosfslable on FAT32 (#693662)
+Patch1: dosfstools-3.0.9-dosfslabel-fat32.patch
 
 %description
 The dosfstools package includes the mkdosfs and dosfsck utilities,
@@ -18,6 +20,7 @@ drives or on floppies.
 %prep
 %setup -q
 %patch0 -p1 -b .fix-alloc-rootdir-entry
+%patch1 -p1 -b .dosfslabel-fat32
 
 %build
 make %{?_smp_mflags} CFLAGS="$RPM_OPT_FLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing"
@@ -36,6 +39,9 @@ rm -rf %{buildroot}
 %{_mandir}/man8/*
 
 %changelog
+* Tue Apr 05 2011 Jaroslav Škarvada <jskarvad at redhat.com> - 3.0.9-6
+- Fixed dosfslabel on FAT32 (#693662)
+
 * Mon Jan 31 2011 Jaroslav Škarvada <jskarvad at redhat.com> - 3.0.9-5
 - Fixed buffer overflow in alloc_rootdir_entry (#674095)
 - Dropped fix-reclaim-file patch, obsoleted by fix-alloc-rootdir-entry patch


More information about the scm-commits mailing list