From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 16:05:17 +0000 (+0200) Subject: mkrescue: Check xorriso presence before doing anything else. X-Git-Url: https://iam.tj/gitweb/gitweb.cgi?p=grub.git;a=commitdiff_plain;h=9e962fd3c42081e2eef1f99a0eaab38fd04d2620 mkrescue: Check xorriso presence before doing anything else. mkrescue can't do anything useful without xorriso, so abort early if it's not available. --- diff --git a/util/grub-mkrescue.c b/util/grub-mkrescue.c index 238d4840e..38f154397 100644 --- a/util/grub-mkrescue.c +++ b/util/grub-mkrescue.c @@ -323,6 +323,7 @@ check_xorriso (const char *val) char *buf = NULL; size_t len = 0; int ret = 0; + int wstatus = 0; argv[0] = xorriso; argv[1] = "-as"; @@ -347,8 +348,10 @@ check_xorriso (const char *val) } close (fd); - waitpid (pid, NULL, 0); + waitpid (pid, &wstatus, 0); free (buf); + if (!WIFEXITED (wstatus) || WEXITSTATUS(wstatus) != 0) + return 0; return ret; } @@ -478,6 +481,10 @@ main (int argc, char *argv[]) if (!output_image) grub_util_error ("%s", _("output file must be specified")); + if (!check_xorriso ("graft-points")) { + grub_util_error ("%s", _("xorriso not found")); + } + grub_init_all (); grub_hostfs_init (); grub_host_init ();