diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-04-21 00:46:44 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-04-21 00:51:19 +0200 |
commit | 1b0b1651b16bd67fa5a583cfe6ce98ac9df80e56 (patch) | |
tree | d269cb07b7a5c027748652eaad94834188ccfe9e /gnu/packages/patches/mtools-mformat-uninitialized.patch | |
parent | 5502fbd7fd8073e7eeb0b447530d7c88c1b79367 (diff) | |
download | guix-1b0b1651b16bd67fa5a583cfe6ce98ac9df80e56.tar.gz guix-1b0b1651b16bd67fa5a583cfe6ce98ac9df80e56.zip |
gnu: mtools: 'mformat' initializes boot sector before writing it.
This is the last bit fixing <https://bugs.gnu.org/35283>.
Previously, 'mformat' (used by 'grub-mkrescue') would pass uninitialized
bytes to write(2), leading to non-deterministic FAT image contents.
This patch fixes that.
* gnu/packages/patches/mtools-mformat-uninitialized.patch: New file.
* gnu/packages/mtools.scm (mtools)[source]: Use it.
* gnu/local.mk (dist_patch_DATA): Add it.
Diffstat (limited to 'gnu/packages/patches/mtools-mformat-uninitialized.patch')
-rw-r--r-- | gnu/packages/patches/mtools-mformat-uninitialized.patch | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gnu/packages/patches/mtools-mformat-uninitialized.patch b/gnu/packages/patches/mtools-mformat-uninitialized.patch new file mode 100644 index 0000000000..ae69d45c99 --- /dev/null +++ b/gnu/packages/patches/mtools-mformat-uninitialized.patch @@ -0,0 +1,20 @@ +Fix a bug whereby 'mformat' could end up passing uninitialized bytes +to write(2). This could be reproduced with: + + mformat -C -f 1440 -L 16 -N 77777777 -i /tmp/x :: + +where the output of /tmp/x would be non-deterministic. + +Patch by Ludovic Courtès <ludo@gnu.org>. + +--- mtools-4.0.23/mformat.c 2019-04-21 00:12:01.496116195 +0200 ++++ mtools-4.0.23/mformat.c 2019-04-21 00:12:36.675967157 +0200 +@@ -927,6 +927,7 @@ void mformat(int argc, char **argv, int + + char *endptr; + ++ memset(&boot.bytes, '\0', sizeof boot); + hs = hs_set = 0; + argtracks = 0; + argheads = 0; + |