* util/grub-menulst2cfg.c (main): Check return value of fwrite.
* util/grub-mklayout.c (write_file): Likewise. New argument fname. All users updated.
This commit is contained in:
parent
9133fd053f
commit
8aeb18379b
3 changed files with 31 additions and 9 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2012-05-10 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
|
* util/grub-menulst2cfg.c (main): Check return value of fwrite.
|
||||||
|
* util/grub-mklayout.c (write_file): Likewise. New argument fname.
|
||||||
|
Allusers updated.
|
||||||
|
|
||||||
2012-05-10 Vladimir Serbinenko <phcoder@gmail.com>
|
2012-05-10 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
* util/grub.d/20_linux_xen.in: Update initrd list based on 10_linux.in
|
* util/grub.d/20_linux_xen.in: Update initrd list based on 10_linux.in
|
||||||
|
|
|
@ -35,6 +35,7 @@ main (int argc, char **argv)
|
||||||
size_t bufsize = 0;
|
size_t bufsize = 0;
|
||||||
char *suffix = xstrdup ("");
|
char *suffix = xstrdup ("");
|
||||||
int suffixlen = 0;
|
int suffixlen = 0;
|
||||||
|
const char *out_fname = 0;
|
||||||
|
|
||||||
if (argc >= 2 && argv[1][0] == '-')
|
if (argc >= 2 && argv[1][0] == '-')
|
||||||
{
|
{
|
||||||
|
@ -66,6 +67,7 @@ main (int argc, char **argv)
|
||||||
argv[2], strerror (errno));
|
argv[2], strerror (errno));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
out_fname = argv[2];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
out = stdout;
|
out = stdout;
|
||||||
|
@ -109,7 +111,14 @@ main (int argc, char **argv)
|
||||||
if (entryname)
|
if (entryname)
|
||||||
fprintf (out, "}\n\n");
|
fprintf (out, "}\n\n");
|
||||||
|
|
||||||
fwrite (suffix, 1, suffixlen, out);
|
if (fwrite (suffix, 1, suffixlen, out) != suffixlen)
|
||||||
|
{
|
||||||
|
if (out_fname)
|
||||||
|
grub_util_error ("cannot write to `%s': %s",
|
||||||
|
out_fname, strerror (errno));
|
||||||
|
else
|
||||||
|
grub_util_error ("cannot write to the stdout: %s", strerror (errno));
|
||||||
|
}
|
||||||
|
|
||||||
free (buf);
|
free (buf);
|
||||||
free (suffix);
|
free (suffix);
|
||||||
|
|
|
@ -310,7 +310,7 @@ get_grub_code (char *layout_code, int shift)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
write_file (FILE *out, struct grub_keyboard_layout *layout)
|
write_file (FILE *out, const char *fname, struct grub_keyboard_layout *layout)
|
||||||
{
|
{
|
||||||
grub_uint32_t version;
|
grub_uint32_t version;
|
||||||
unsigned i;
|
unsigned i;
|
||||||
|
@ -332,14 +332,21 @@ write_file (FILE *out, struct grub_keyboard_layout *layout)
|
||||||
layout->keyboard_map_shift_l3[i]
|
layout->keyboard_map_shift_l3[i]
|
||||||
= grub_cpu_to_le32(layout->keyboard_map_shift_l3[i]);
|
= grub_cpu_to_le32(layout->keyboard_map_shift_l3[i]);
|
||||||
|
|
||||||
fwrite (GRUB_KEYBOARD_LAYOUTS_FILEMAGIC, 1,
|
if (fwrite (GRUB_KEYBOARD_LAYOUTS_FILEMAGIC, 1,
|
||||||
GRUB_KEYBOARD_LAYOUTS_FILEMAGIC_SIZE, out);
|
GRUB_KEYBOARD_LAYOUTS_FILEMAGIC_SIZE, out)
|
||||||
fwrite (&version, sizeof (version), 1, out);
|
!= GRUB_KEYBOARD_LAYOUTS_FILEMAGIC_SIZE
|
||||||
fwrite (layout, 1, sizeof (*layout), out);
|
|| fwrite (&version, sizeof (version), 1, out) != 1
|
||||||
|
|| fwrite (layout, 1, sizeof (*layout), out) != sizeof (*layout))
|
||||||
|
{
|
||||||
|
if (fname)
|
||||||
|
grub_util_error ("cannot write to `%s': %s", fname, strerror (errno));
|
||||||
|
else
|
||||||
|
grub_util_error ("cannot write to the stdout: %s", strerror (errno));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
write_keymaps (FILE *in, FILE *out)
|
write_keymaps (FILE *in, FILE *out, const char *out_filename)
|
||||||
{
|
{
|
||||||
struct grub_keyboard_layout layout;
|
struct grub_keyboard_layout layout;
|
||||||
char line[2048];
|
char line[2048];
|
||||||
|
@ -413,7 +420,7 @@ write_keymaps (FILE *in, FILE *out)
|
||||||
|
|
||||||
add_special_keys (&layout);
|
add_special_keys (&layout);
|
||||||
|
|
||||||
write_file (out, &layout);
|
write_file (out, out_filename, &layout);
|
||||||
}
|
}
|
||||||
|
|
||||||
static error_t
|
static error_t
|
||||||
|
@ -489,7 +496,7 @@ main (int argc, char *argv[])
|
||||||
strerror (errno));
|
strerror (errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
write_keymaps (in, out);
|
write_keymaps (in, out, arguments.output);
|
||||||
|
|
||||||
if (in != stdin)
|
if (in != stdin)
|
||||||
fclose (in);
|
fclose (in);
|
||||||
|
|
Loading…
Reference in a new issue