From dfe3b247a2be2566b4a0c97caec59acc293fee8e Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Mon, 20 Sep 2010 17:56:14 +0100 Subject: [PATCH] * util/grub-editenv.c (argp_parser): Don't pass translated strings as printf format strings; the translations might contain '%' which could cause a crash. (main): Likewise. * util/grub-fstest.c (argp_parser): Likewise. * util/grub-setup.c (argp_parser): Likewise. (main): Likewise. --- ChangeLog | 10 ++++++++++ util/grub-editenv.c | 5 +++-- util/grub-fstest.c | 10 +++++----- util/grub-setup.c | 4 ++-- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6adf6142a..e20e2b654 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2010-09-20 Colin Watson + + * util/grub-editenv.c (argp_parser): Don't pass translated strings + as printf format strings; the translations might contain '%' which + could cause a crash. + (main): Likewise. + * util/grub-fstest.c (argp_parser): Likewise. + * util/grub-setup.c (argp_parser): Likewise. + (main): Likewise. + 2010-09-20 Vladimir Serbinenko Use argp in grub-fstest. diff --git a/util/grub-editenv.c b/util/grub-editenv.c index 3ea026cfe..bfda7c3d8 100644 --- a/util/grub-editenv.c +++ b/util/grub-editenv.c @@ -72,7 +72,8 @@ error_t argp_parser (int key, char *arg, struct argp_state *state) break; case ARGP_KEY_NO_ARGS: - fprintf (stderr, _("You need to specify at least one command.\n")); + fprintf (stderr, "%s", + _("You need to specify at least one command.\n")); argp_usage (state); break; @@ -272,7 +273,7 @@ main (int argc, char *argv[]) /* Parse our arguments */ if (argp_parse (&argp, argc, argv, 0, &index, 0) != 0) { - fprintf (stderr, _("Error in parsing command line arguments\n")); + fprintf (stderr, "%s", _("Error in parsing command line arguments\n")); exit(1); } diff --git a/util/grub-fstest.c b/util/grub-fstest.c index 72485679f..aedb2954a 100644 --- a/util/grub-fstest.c +++ b/util/grub-fstest.c @@ -394,12 +394,12 @@ argp_parser (int key, char *arg, struct argp_state *state) num_disks = grub_strtoul (arg, NULL, 0); if (num_disks < 1) { - fprintf (stderr, _("Invalid disk count.\n")); + fprintf (stderr, "%s", _("Invalid disk count.\n")); argp_usage (state); } if (args_count != 0) { - fprintf (stderr, _("Disk count must precede disks list.\n")); + fprintf (stderr, "%s", _("Disk count must precede disks list.\n")); argp_usage (state); } return 0; @@ -415,12 +415,12 @@ argp_parser (int key, char *arg, struct argp_state *state) case ARGP_KEY_END: if (args_count < num_disks) { - fprintf (stderr, _("No command is specified.\n")); + fprintf (stderr, "%s", _("No command is specified.\n")); argp_usage (state); } if (args_count - 1 - num_disks < nparm) { - fprintf (stderr, _("Not enough parameters to command.\n")); + fprintf (stderr, "%s", _("Not enough parameters to command.\n")); argp_usage (state); } return 0; @@ -436,7 +436,7 @@ argp_parser (int key, char *arg, struct argp_state *state) { if (arg[0] != '/') { - fprintf (stderr, _("Must use absolute path.\n")); + fprintf (stderr, "%s", _("Must use absolute path.\n")); argp_usage (state); } if (args_count == 0) diff --git a/util/grub-setup.c b/util/grub-setup.c index 90a4b2ac2..05355bf43 100644 --- a/util/grub-setup.c +++ b/util/grub-setup.c @@ -778,7 +778,7 @@ argp_parser (int key, char *arg, struct argp_state *state) break; case ARGP_KEY_NO_ARGS: - fprintf (stderr, _("No device is specified.\n")); + fprintf (stderr, "%s", _("No device is specified.\n")); argp_usage (state); break; @@ -835,7 +835,7 @@ main (int argc, char *argv[]) /* Parse our arguments */ if (argp_parse (&argp, argc, argv, 0, 0, &arguments) != 0) { - fprintf (stderr, _("Error in parsing command line arguments\n")); + fprintf (stderr, "%s", _("Error in parsing command line arguments\n")); exit(1); }