Colin Watson wrote: > Ubuntu's GCC enables -Wformat-security by default. This causes GCC to > (IMO rightly!) complain about constructs such as this: > > grub_printf (_("foo")); > > ... because it's all too easy for a translator to (usually accidentally) > insert % sequences which would cause printf to behave incorrectly. This > should instead be: > > grub_printf ("%s", _("foo")); > > Patch follows. I can't help thinking that this would be easier with a > grub_puts, but perhaps that isn't worth it given the relatively small > number of occurrences here? > > Also, should the line in notify_execution_failure instead be: > > - grub_printf (_("Failed to boot default entries.\n")); > + grub_printf ("%s\n", _("Failed to boot default entries.")); > > ... to get rid of the unsightly \n in this translated string? > This warning is simply wrong in this context. And silencing it is against gettext manual. Read http://www.gnu.org/software/hello/manual/gettext/Preparing-Strings.html http://www.gnu.org/software/hello/manual/gettext/c_002dformat-Flag.html#c_002dformat-Flag > 2009-12-07 Colin Watson <cjwat...@ubuntu.com> > > * normal/menu_entry.c (run): Don't pass the result of gettext as > the first argument to grub_printf, appeasing -Wformat-security. > (grub_menu_entry_run): Likewise. > * normal/menu_text.c (grub_wait_after_message): Likewise. > (print_message): Likewise. > (notify_execution_failure): Likewise. > > === modified file 'normal/menu_entry.c' > --- normal/menu_entry.c 2009-12-05 11:25:07 +0000 > +++ normal/menu_entry.c 2009-12-07 14:02:20 +0000 > @@ -1000,7 +1000,7 @@ run (struct screen *screen) > > grub_cls (); > grub_printf (" "); > - grub_printf (_("Booting a command list")); > + grub_printf ("%s", _("Booting a command list")); > grub_printf ("\n\n"); > > > @@ -1182,6 +1182,6 @@ grub_menu_entry_run (grub_menu_entry_t e > grub_print_error (); > grub_errno = GRUB_ERR_NONE; > grub_putchar ('\n'); > - grub_printf (_("Press any key to continue...")); > + grub_printf ("%s", _("Press any key to continue...")); > (void) grub_getkey (); > } > > === modified file 'normal/menu_text.c' > --- normal/menu_text.c 2009-12-05 11:25:07 +0000 > +++ normal/menu_text.c 2009-12-07 14:02:45 +0000 > @@ -40,7 +40,7 @@ void > grub_wait_after_message (void) > { > grub_putchar ('\n'); > - grub_printf (_("Press any key to continue...")); > + grub_printf ("%s", _("Press any key to continue...")); > (void) grub_getkey (); > grub_putchar ('\n'); > } > @@ -206,7 +206,7 @@ entry is highlighted."); > if (nested) > { > grub_printf ("\n "); > - grub_printf (_("ESC to return previous menu.")); > + grub_printf ("%s", _("ESC to return previous menu.")); > } > } > } > @@ -655,7 +655,7 @@ notify_execution_failure (void *userdata > grub_errno = GRUB_ERR_NONE; > } > grub_printf ("\n "); > - grub_printf (_("Failed to boot default entries.\n")); > + grub_printf ("%s", _("Failed to boot default entries.\n")); > grub_wait_after_message (); > } > > > Thanks, > >
-- Regards Vladimir 'φ-coder/phcoder' Serbinenko
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel