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
`. `'` [email protected] / 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 <[email protected]> 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 <[email protected]>
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 <[email protected]>
+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