From a079c68644a9347298df305b6e941ea3eb84cc4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= Date: Fri, 26 Feb 2010 15:51:23 +0000 Subject: [PATCH] - Bump to newer release - Removed mkdosfs-ygg from Obsoletes/Provides tag as it looks really deprecated - Drop bounds patch - fixed upstream --- .cvsignore | 2 +- dosfstools-3.0.6-bounds.patch | 67 ----------------------------------- dosfstools.spec | 13 ++++--- sources | 2 +- 4 files changed, 8 insertions(+), 76 deletions(-) delete mode 100644 dosfstools-3.0.6-bounds.patch diff --git a/.cvsignore b/.cvsignore index 27c2dbb..a0ec4dd 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -dosfstools-3.0.6.tar.bz2 +dosfstools-3.0.9.tar.gz diff --git a/dosfstools-3.0.6-bounds.patch b/dosfstools-3.0.6-bounds.patch deleted file mode 100644 index 724f0fc..0000000 --- a/dosfstools-3.0.6-bounds.patch +++ /dev/null @@ -1,67 +0,0 @@ -From: Lubomir Rintel -Date: Wed, 2 Dec 2009 22:49:11 +0100 -Subject: [PATCH] Fix 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(). - -diff -up dosfstools-3.0.6/src/check.c.bounds dosfstools-3.0.6/src/check.c ---- dosfstools-3.0.6/src/check.c.bounds 2009-10-04 09:15:58.000000000 +0200 -+++ dosfstools-3.0.6/src/check.c 2009-12-06 12:32:42.922639364 +0100 -@@ -131,7 +131,10 @@ loff_t alloc_rootdir_entry(DOS_FS *fs, D - } - memset(de,0,sizeof(DIR_ENT)); - while (1) { -- sprintf(de->name,pattern,curr_num); -+ char expanded[12]; -+ sprintf(expanded, pattern, curr_num); -+ memcpy(de->name+4, expanded, 4); -+ memcpy(de->ext, expanded+4, 3); - clu_num = fs->root_cluster; - i = 0; - offset2 = cluster_start(fs,clu_num); -@@ -349,8 +352,11 @@ static void auto_rename(DOS_FILE *file) - first = file->parent ? file->parent->first : root; - number = 0; - while (1) { -- sprintf(file->dir_ent.name, "FSCK%04d", number / 1000); -- sprintf(file->dir_ent.ext, "%03d", number % 1000); -+ char num[8]; -+ sprintf(num, "%07d", number); -+ memcpy(file->dir_ent.name, "FSCK", 4); -+ memcpy(file->dir_ent.name+4, num, 4); -+ memcpy(file->dir_ent.ext, num+4, 3); - for (walk = first; walk; walk = walk->next) - if (walk != file && !strncmp(walk->dir_ent.name,file->dir_ent. - name,MSDOS_NAME)) break; -diff -up dosfstools-3.0.6/src/dosfsck.h.bounds dosfstools-3.0.6/src/dosfsck.h ---- dosfstools-3.0.6/src/dosfsck.h.bounds 2009-10-04 09:15:58.000000000 +0200 -+++ dosfstools-3.0.6/src/dosfsck.h 2009-12-06 12:31:49.042643675 +0100 -@@ -149,7 +149,7 @@ typedef struct { - __u16 starthi; /* High 16 bits of cluster in FAT32 */ - __u16 time,date,start;/* time, date and first cluster */ - __u32 size; /* file size (in bytes) */ --} DIR_ENT; -+} __attribute__ ((packed)) DIR_ENT; - - typedef struct _dos_file { - DIR_ENT dir_ent; -diff -up dosfstools-3.0.6/src/mkdosfs.c.bounds dosfstools-3.0.6/src/mkdosfs.c ---- dosfstools-3.0.6/src/mkdosfs.c.bounds 2009-10-04 09:15:58.000000000 +0200 -+++ dosfstools-3.0.6/src/mkdosfs.c 2009-12-06 12:31:49.048645872 +0100 -@@ -1254,7 +1254,8 @@ setup_tables (void) - if ( memcmp(volume_name, " ", 11) ) - { - struct msdos_dir_entry *de = &root_dir[0]; -- memcpy(de->name, volume_name, 11); -+ memcpy(de->name, volume_name, 8); -+ memcpy(de->ext, volume_name+8, 3); - de->attr = ATTR_VOLUME; - ctime = localtime(&create_time); - de->time = CT_LE_W((unsigned short)((ctime->tm_sec >> 1) + diff --git a/dosfstools.spec b/dosfstools.spec index dc5f9b1..f7f8133 100644 --- a/dosfstools.spec +++ b/dosfstools.spec @@ -1,17 +1,12 @@ Name: dosfstools Summary: Utilities for making and checking MS-DOS FAT filesystems on Linux -Version: 3.0.6 +Version: 3.0.9 Release: 1%{?dist} License: GPLv3+ Group: Applications/System Source0: http://www.daniel-baumann.ch/software/dosfstools/%{name}-%{version}.tar.bz2 URL: http://www.daniel-baumann.ch/software/dosfstools/ Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -Obsoletes: mkdosfs-ygg -Provides: mkdosfs-ygg = %{version} - -# Mailed to Daniel Baumann -Patch0: dosfstools-3.0.6-bounds.patch %description The dosfstools package includes the mkdosfs and dosfsck utilities, @@ -20,7 +15,6 @@ drives or on floppies. %prep %setup -q -%patch0 -p1 -b .bounds %build make %{?_smp_mflags} CFLAGS="$RPM_OPT_FLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" @@ -39,6 +33,11 @@ rm -rf %{buildroot} %{_mandir}/man8/* %changelog +* Fri Feb 26 2010 Jaroslav Škarvada - 3.0.9-1 +- Bump to newer release +- Removed mkdosfs-ygg from Obsoletes/Provides tag as it looks really deprecated +- Drop bounds patch - fixed upstream + * Sun Dec 06 2009 Lubomir Rintel - 3.0.6-1 - Bump to newer release - Fix numerous out-of-bound writes diff --git a/sources b/sources index 1d22545..38f6d36 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -ae64c11d3963cd49758aba2854a60b6e dosfstools-3.0.6.tar.bz2 +bd273cf8aa6341c0b52cbac72050bcf4 dosfstools-3.0.9.tar.gz