85 lines
2.0 KiB
Diff
85 lines
2.0 KiB
Diff
https://bugs.gentoo.org/show_bug.cgi?id=424527
|
|
https://savannah.gnu.org/bugs/index.php?36770
|
|
|
|
=== modified file 'grub-core/lib/xzembed/xz_dec_stream.c'
|
|
--- grub-core/lib/xzembed/xz_dec_stream.c 2012-02-29 13:56:51 +0000
|
|
+++ grub-core/lib/xzembed/xz_dec_stream.c 2012-07-22 14:27:03 +0000
|
|
@@ -403,18 +403,25 @@
|
|
}
|
|
#endif
|
|
|
|
- do {
|
|
+ if (b->in_pos == b->in_size)
|
|
+ return XZ_OK;
|
|
+
|
|
+ if (!crc32 && s->hash_size == 0)
|
|
+ s->pos += 8;
|
|
+
|
|
+ while (s->pos < (crc32 ? 32 : s->hash_size * 8)) {
|
|
if (b->in_pos == b->in_size)
|
|
return XZ_OK;
|
|
|
|
#ifndef GRUB_EMBED_DECOMPRESSOR
|
|
- if (hash && s->hash_value[s->pos / 8] != b->in[b->in_pos++])
|
|
+ if (hash && s->hash_value[s->pos / 8] != b->in[b->in_pos])
|
|
return XZ_DATA_ERROR;
|
|
#endif
|
|
+ b->in_pos++;
|
|
|
|
s->pos += 8;
|
|
|
|
- } while (s->pos < (crc32 ? 32 : s->hash_size * 8));
|
|
+ }
|
|
|
|
#ifndef GRUB_EMBED_DECOMPRESSOR
|
|
if (s->hash)
|
|
@@ -529,8 +536,6 @@
|
|
s->hash->init(s->index.hash.hash_context);
|
|
s->hash->init(s->block.hash.hash_context);
|
|
}
|
|
- if (!s->hash)
|
|
- return XZ_OPTIONS_ERROR;
|
|
#endif
|
|
}
|
|
else
|
|
|
|
=== modified file 'grub-core/normal/autofs.c'
|
|
--- grub-core/normal/autofs.c 2012-05-01 13:26:36 +0000
|
|
+++ grub-core/normal/autofs.c 2012-07-22 14:23:46 +0000
|
|
@@ -32,11 +32,21 @@
|
|
autoload_fs_module (void)
|
|
{
|
|
grub_named_list_t p;
|
|
+ int ret = 0;
|
|
+ grub_file_filter_t grub_file_filters_was[GRUB_FILE_FILTER_MAX];
|
|
+
|
|
+ grub_memcpy (grub_file_filters_was, grub_file_filters_enabled,
|
|
+ sizeof (grub_file_filters_enabled));
|
|
+ grub_memcpy (grub_file_filters_enabled, grub_file_filters_all,
|
|
+ sizeof (grub_file_filters_enabled));
|
|
|
|
while ((p = fs_module_list) != NULL)
|
|
{
|
|
if (! grub_dl_get (p->name) && grub_dl_load (p->name))
|
|
- return 1;
|
|
+ {
|
|
+ ret = 1;
|
|
+ break;
|
|
+ }
|
|
|
|
if (grub_errno)
|
|
grub_print_error ();
|
|
@@ -46,7 +56,10 @@
|
|
grub_free (p);
|
|
}
|
|
|
|
- return 0;
|
|
+ grub_memcpy (grub_file_filters_enabled, grub_file_filters_was,
|
|
+ sizeof (grub_file_filters_enabled));
|
|
+
|
|
+ return ret;
|
|
}
|
|
|
|
/* Read the file fs.lst for auto-loading. */
|
|
|