tags 837044 + pending patch
tags 900409 + pending patch
tags 900410 + pending patch
thanks

Hi,

After a few pings I've uploaded mtools 4.0.18-2.1 to DELAYED/10:
  
  mtools (4.0.18-2.1) unstable; urgency=medium
  
    * Non-maintainer upload.
    * Prevent an issue where mtools creates corrupted FAT entries for
      directories when copied to a filesystem. This issue was reported upstream
      at <https://lists.gnu.org/archive/html/info-mtools/2014-08/msg00000.html>
      and as the underlying issue is based on uninitialised memory also affects
      the reproducibility of the output of mtools which s required for
      reproducible Debian Installer images. (Closes: #837044, #900409)
    * Use the SOURCE_DATE_EPOCH environment variable if set instead of the
      current time of day as the default timestamp (such as when adding files to
      an existing file) to make its output reproducible. (Closes: #900410)
    * Use "Priority: extra" over "Priority: optional" for Debian Policy  2.0.5.

The full debdiff is attached.


Regards,

-- 
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      la...@debian.org / chris-lamb.co.uk
       `-
diffstat for mtools-4.0.18 mtools-4.0.18

 changelog                                                                 |   
16 +++
 control                                                                   |    
2 
 patches/02-837044-initialize-direntry.patch                               |   
18 +++
 patches/03-837044-corrupted-fat-entries-when-mcopy-copies-directory.patch |   
47 ++++++++++
 patches/series                                                            |    
2 
 5 files changed, 84 insertions(+), 1 deletion(-)

diff -Nru mtools-4.0.18/debian/changelog mtools-4.0.18/debian/changelog
--- mtools-4.0.18/debian/changelog      2014-09-19 09:11:58.000000000 +0800
+++ mtools-4.0.18/debian/changelog      2018-07-25 20:23:59.000000000 +0800
@@ -1,3 +1,19 @@
+mtools (4.0.18-2.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Prevent an issue where mtools creates corrupted FAT entries for
+    directories when copied to a filesystem. This issue was reported upstream
+    at <https://lists.gnu.org/archive/html/info-mtools/2014-08/msg00000.html>
+    and as the underlying issue is based on uninitialised memory also affects
+    the reproducibility of the output of mtools which s required for
+    reproducible Debian Installer images. (Closes: #837044, #900409)
+  * Use the SOURCE_DATE_EPOCH environment variable if set instead of the
+    current time of day as the default timestamp (such as when adding files to
+    an existing file) to make its output reproducible. (Closes: #900410)
+  * Use "Priority: extra" over "Priority: optional" for Debian Policy § 2.0.5.
+
+ -- Chris Lamb <la...@debian.org>  Wed, 25 Jul 2018 20:23:59 +0800
+
 mtools (4.0.18-2) unstable; urgency=medium
 
   * Don't have autotools-dev listed twice in Build-depends.
diff -Nru mtools-4.0.18/debian/control mtools-4.0.18/debian/control
--- mtools-4.0.18/debian/control        2014-09-19 09:03:47.000000000 +0800
+++ mtools-4.0.18/debian/control        2018-07-25 20:23:59.000000000 +0800
@@ -1,6 +1,6 @@
 Source: mtools
 Section: otherosfs
-Priority: optional
+Priority: extra
 Maintainer: Anibal Monsalve Salazar <ani...@debian.org>
 Build-Depends: dpkg-dev (>= 1.16.1~), debhelper (>= 9), autotools-dev, 
libxfont-dev, libxt-dev, texinfo
 Standards-Version: 3.9.6
diff -Nru mtools-4.0.18/debian/patches/02-837044-initialize-direntry.patch 
mtools-4.0.18/debian/patches/02-837044-initialize-direntry.patch
--- mtools-4.0.18/debian/patches/02-837044-initialize-direntry.patch    
1970-01-01 08:00:00.000000000 +0800
+++ mtools-4.0.18/debian/patches/02-837044-initialize-direntry.patch    
2018-07-25 20:23:59.000000000 +0800
@@ -0,0 +1,18 @@
+Author: Ronny Nilsson <rln-mto...@arbetsmyra.dyndns.org>
+Description: initialize direntry with memset to correct invalid bitfields
+ mcopy will create directory entries with invalid bitfields because of
+ uninitialized memory.  Initialize this structure with memset() to avoid
+ corrupt filesystems.
+Bug-Ubuntu: https://bugs.launchpad.net/bug/1619718
+Origin: https://lists.gnu.org/archive/html/info-mtools/2014-08/msg00000.html
+
+--- mtools-4.0.18.orig/direntry.c
++++ mtools-4.0.18/direntry.c
+@@ -24,6 +24,7 @@
+ 
+ void initializeDirentry(direntry_t *entry, Stream_t *Dir)
+ {
++      memset(entry, 0, sizeof(direntry_t));
+       entry->entry = -1;
+ /*    entry->parent = getDirentry(Dir);*/
+       entry->Dir = Dir;
diff -Nru 
mtools-4.0.18/debian/patches/03-837044-corrupted-fat-entries-when-mcopy-copies-directory.patch
 
mtools-4.0.18/debian/patches/03-837044-corrupted-fat-entries-when-mcopy-copies-directory.patch
--- 
mtools-4.0.18/debian/patches/03-837044-corrupted-fat-entries-when-mcopy-copies-directory.patch
      1970-01-01 08:00:00.000000000 +0800
+++ 
mtools-4.0.18/debian/patches/03-837044-corrupted-fat-entries-when-mcopy-copies-directory.patch
      2018-07-25 20:23:59.000000000 +0800
@@ -0,0 +1,47 @@
+--- mtools-4.0.18.orig/misc.c
++++ mtools-4.0.18/misc.c
+@@ -109,7 +109,8 @@ FILE *open_mcwd(const char *mode)
+                * Ignore the info, if the file is more than 6 hours old
+                */
+               getTimeNow(&now);
+-              if (now - sbuf.st_mtime > 6 * 60 * 60) {
++              if (now - sbuf.st_mtime > 6 * 60 * 60
++                  && getenv("SOURCE_DATE_EPOCH") == NULL) {
+                       fprintf(stderr,
+                               "Warning: \"%s\" is out of date, removing it\n",
+                               file);
+@@ -159,11 +160,33 @@ void print_sector(const char *message, u
+ 
+ time_t getTimeNow(time_t *now)
+ {
++      char *endptr;
++      char *source_date_epoch;
++      unsigned long long epoch;
+       static int haveTime = 0;
+       static time_t sharedNow;
+ 
+       if(!haveTime) {
+-              time(&sharedNow);
++              source_date_epoch = getenv("SOURCE_DATE_EPOCH");
++              if (source_date_epoch) {
++                      epoch = strtoull(source_date_epoch, &endptr, 10);
++
++                      if (endptr == source_date_epoch)
++                              fprintf(stderr, "SOURCE_DATE_EPOCH invalid\n");
++                      else if ((errno == ERANGE && (epoch == ULLONG_MAX || 
epoch == 0))
++                                      || (errno != 0 && epoch == 0))
++                              fprintf(stderr, "SOURCE_DATE_EPOCH: strtoull: 
%s: %llu\n",
++                              strerror(errno), epoch);
++                      else if (*endptr != '\0')
++                              fprintf(stderr, "SOURCE_DATE_EPOCH has trailing 
garbage\n");
++                      else if (epoch > ULONG_MAX)
++                              fprintf(stderr, "SOURCE_DATE_EPOCH must be <= 
%lu but saw: %llu\n", ULONG_MAX, epoch);
++                      else {
++                              sharedNow = epoch;
++                      }
++              } else {
++                      time(&sharedNow);
++              }
+               haveTime = 1;
+       }
+       if(now)
diff -Nru mtools-4.0.18/debian/patches/series 
mtools-4.0.18/debian/patches/series
--- mtools-4.0.18/debian/patches/series 2013-05-25 12:29:27.000000000 +0800
+++ mtools-4.0.18/debian/patches/series 2018-07-25 20:23:59.000000000 +0800
@@ -1 +1,3 @@
 01-607426-support-zip-files-in-uz.patch
+02-837044-initialize-direntry.patch
+03-837044-corrupted-fat-entries-when-mcopy-copies-directory.patch

Reply via email to