grub/util
Colin Watson 62daa27056 util: Detect more I/O errors
Many of GRUB's utilities don't check anywhere near all the possible
write errors.  For example, if grub-install runs out of space when
copying a file, it won't notice.  There were missing checks for the
return values of write, fflush, fsync, and close (or the equivalents on
other OSes), all of which must be checked.

I tried to be consistent with the existing logging practices of the
various hostdisk implementations, but they weren't entirely consistent
to start with so I used my judgement.  The result at least looks
reasonable on GNU/Linux when I provoke a write error:

  Installing for x86_64-efi platform.
  grub-install: error: cannot copy `/usr/lib/grub/x86_64-efi-signed/grubx64.efi.signed' to `/boot/efi/EFI/debian/grubx64.efi': No space left on device.

There are more missing checks in other utilities, but this should fix
the most critical ones.

Fixes Debian bug #922741.

Signed-off-by: Colin Watson <cjwatson@ubuntu.com>
Reviewed-by: Steve McIntyre <93sam@debian.org>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
2019-03-05 10:23:47 +01:00
..
bash-completion.d Clean up dangling references to grub-setup. 2013-01-12 13:30:37 +00:00
grub.d grub-mkconfig/20_linux_xen: Support multiple early initrd images 2019-01-14 11:56:19 +01:00
i386/efi Merge mainline into install 2010-09-15 14:46:53 +02:00
ieee1275 ieee1275: Fix segfault in grub-ofpathname 2017-12-06 12:55:55 +01:00
bin2h.c Fix handling of build-time grub-bin2h and grub-mkfont when doing 2013-08-14 10:56:55 +02:00
config.c * util/config.c: Remove trailing newline from distributor in simple 2013-12-14 21:50:36 +01:00
editenv.c util: Detect more I/O errors 2019-03-05 10:23:47 +01:00
garbage-gen.c * util/garbage-gen.c: Add missing include of sys/time.h. 2013-11-23 12:42:30 +01:00
getroot.c i386, x86_64, ppc: fix switch fallthrough cases with GCC7 2017-04-04 19:23:55 +03:00
glue-efi.c Build fixes for argp.h with older gcc. 2013-12-21 18:08:25 +01:00
grub-editenv.c util: Detect more I/O errors 2019-03-05 10:23:47 +01:00
grub-file.c Fix canonicalize_file_name clash. 2015-03-04 01:00:19 +01:00
grub-fstest.c verifiers: File type for fine-grained signature-verification controlling 2018-11-09 13:25:31 +01:00
grub-gen-asciih.c * util/grub-gen-asciih.c (add_glyph): Fix uninitialised variable. 2014-06-21 20:26:47 +02:00
grub-gen-widthspec.c Fix build with FreeType 2.5.1 2013-11-29 12:19:36 +00:00
grub-glue-efi.c Build fixes for argp.h with older gcc. 2013-12-21 18:08:25 +01:00
grub-install-common.c util: Detect more I/O errors 2019-03-05 10:23:47 +01:00
grub-install.c grub-install: Check for arm-efi as a default target 2019-02-26 15:25:13 +01:00
grub-kbdcomp.in Change -v to -V for version of shell utils. 2016-02-12 15:46:05 +01:00
grub-macbless.c Fix canonicalize_file_name clash. 2015-03-04 01:00:19 +01:00
grub-macho2img.c * util/grub-macho2img.c: Use plain fopen rather than grub_util_fopen. 2013-11-11 22:48:43 +01:00
grub-menulst2cfg.c Add a wrapper for fopen. On unix-like systems just pass-through. On 2013-10-13 20:36:28 +02:00
grub-mkconfig.in templates: Update grub script template files 2018-04-23 13:31:02 +02:00
grub-mkconfig_lib.in grub-mkconfig: Fix detecting .sig files as system images 2017-12-06 12:58:54 +01:00
grub-mkfont.c grub-mkfont: Remove leftover debug statement. 2017-01-31 22:32:21 +01:00
grub-mkimage.c util: Detect more I/O errors 2019-03-05 10:23:47 +01:00
grub-mkimage32.c xen_pvh: Support building a standalone image 2018-12-12 12:03:27 +01:00
grub-mkimage64.c xen_pvh: Support building a standalone image 2018-12-12 12:03:27 +01:00
grub-mkimagexx.c RISC-V: Add awareness for RISC-V reloations 2019-02-25 11:34:09 +01:00
grub-mklayout.c grub-mklayout: check subscript bounds 2016-01-09 14:13:36 +03:00
grub-mknetdir.c RISC-V: Add to build system 2019-02-25 14:02:05 +01:00
grub-mkpasswd-pbkdf2.c Build fixes for argp.h with older gcc. 2013-12-21 18:08:25 +01:00
grub-mkrelpath.c Build fixes for argp.h with older gcc. 2013-12-21 18:08:25 +01:00
grub-mkrescue.c RISC-V: Add to build system 2019-02-25 14:02:05 +01:00
grub-mkstandalone.c util/grub-mkstandalone: fix memory leak. 2015-01-26 23:04:09 +03:00
grub-module-verifier.c RISC-V: Add awareness for RISC-V reloations 2019-02-25 11:34:09 +01:00
grub-module-verifier32.c Verify modules on build-time rather than failing in runtime. 2015-12-31 13:09:15 +01:00
grub-module-verifier64.c Verify modules on build-time rather than failing in runtime. 2015-12-31 13:09:15 +01:00
grub-module-verifierXX.c grub-module-verifier: Report the filename or modname in errors 2018-09-12 13:24:36 +02:00
grub-mount.c verifiers: File type for fine-grained signature-verification controlling 2018-11-09 13:25:31 +01:00
grub-pe2elf.c remove extra newlines in grub_util_* strings 2015-05-13 09:47:17 +03:00
grub-probe.c grub-probe: Add PARTUUID detection support 2018-04-23 13:24:29 +02:00
grub-reboot.in grub-reboot: Warn when "for the next boot only" promise cannot be kept 2018-09-13 11:01:10 +02:00
grub-render-label.c Build fixes for argp.h with older gcc. 2013-12-21 18:08:25 +01:00
grub-script-check.c Build fixes for argp.h with older gcc. 2013-12-21 18:08:25 +01:00
grub-set-default.in Change -v to -V for version of shell utils. 2016-02-12 15:46:05 +01:00
grub-setup.c Build fixes for argp.h with older gcc. 2013-12-21 18:08:25 +01:00
grub-syslinux2cfg.c Fix canonicalize_file_name clash. 2015-03-04 01:00:19 +01:00
import_gcry.py fix Mingw W64-32 cross compile failure due to printf redefinition in libintl.h 2014-01-25 21:49:41 +04:00
import_gcrypth.sed Import libgcrypt 1.5.3. 2013-11-07 06:35:50 +01:00
import_unicode.py * util/import_unicode.py: Add missing brackets around string for 2012-03-10 20:47:12 +01:00
misc.c Move file loading functions to grub-emu. 2016-01-05 21:10:27 +01:00
mkimage.c RISC-V: Add to build system 2019-02-25 14:02:05 +01:00
probe.c Fix canonicalize_file_name clash. 2015-03-04 01:00:19 +01:00
render-label.c Fix canonicalize_file_name clash. 2015-03-04 01:00:19 +01:00
resolve.c util/setup: fix grub_util_path_list leak 2016-01-09 13:55:18 +03:00
setup.c util: Detect more I/O errors 2019-03-05 10:23:47 +01:00
setup_bios.c Split grub-setup.c into frontend (grub-setup.c) and backend (setup.c) 2013-10-15 16:16:04 +02:00
setup_sparc.c Split grub-setup.c into frontend (grub-setup.c) and backend (setup.c) 2013-10-15 16:16:04 +02:00
spkmodem-recv.c Improve spkmomdem reliability by adding a separator between bytes. 2013-01-21 14:55:30 +01:00