diff --git a/ChangeLog b/ChangeLog index a2edbc552..c3405df50 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2013-01-21 Vladimir Serbinenko + + * include/grub/kernel.h (FOR_MODULES): Adjust to preserve alignment + invariants. + 2013-01-21 Colin Watson * grub-core/font/font.c (blit_comb: do_blit): Make static instead of diff --git a/include/grub/kernel.h b/include/grub/kernel.h index 033479e65..23e4f02c0 100644 --- a/include/grub/kernel.h +++ b/include/grub/kernel.h @@ -78,7 +78,7 @@ extern grub_addr_t EXPORT_VAR (grub_modbase); var && (grub_addr_t) var \ < (grub_modbase + (((struct grub_module_info *) grub_modbase)->size)); \ var = (struct grub_module_header *) \ - ((void **) var + (((struct grub_module_header *) var)->size + sizeof (void *) - 1) / sizeof (void *))) + (((grub_uint32_t *) var) + ((((struct grub_module_header *) var)->size + sizeof (grub_addr_t) - 1) / sizeof (grub_addr_t)) * (sizeof (grub_addr_t) / sizeof (grub_uint32_t)))) grub_addr_t grub_modules_get_end (void);