[patch] [PATCH] Don't write undefined values to disk
Ken'ichi Ohmichi
oomichi at mxs.nes.nec.co.jp
Thu Sep 11 21:15:28 EDT 2008
Hi Bernhard,
Thank you for the patch.
It will be merged to the next release.
Thanks
Ken'ichi Ohmichi
Bernhard Walle wrote:
> Because of structure member alignment, the simple structure
>
> struct kdump_sub_header {
> unsigned long phys_base;
> int dump_level;
> };
>
> is 16 bytes large on x86_64. So if you fill the two members phys_base and
> dump_level with values, you still have uninitialised memory if you write
> sizeof(struct kdump_sub_header) to disk.
>
> This patch initialises everything with zero first to get rid of that problem.
> The patch fixes valgrind warning
>
> ==24152== Syscall param write(buf) points to uninitialised byte(s)
> ==24152== at 0x4EEFFC0: write (in /lib64/libc-2.8.so)
> ==24152== by 0x40A97D: (within /bin/makedumpfile)
> ==24152== by 0x40ACEF: (within /bin/makedumpfile)
> ==24152== by 0x41896C: (within /bin/makedumpfile)
> ==24152== by 0x4191AA: (within /bin/makedumpfile)
> ==24152== by 0x4E48435: (below main) (in /lib64/libc-2.8.so)
> ==24152== Address 0x7fefffbfc is on thread 1's stack
>
>
> Signed-off-by: Bernhard Walle <bwalle at suse.de>
>
> ---
> makedumpfile.c | 1 +
> 1 file changed, 1 insertion(+)
>
> --- a/makedumpfile.c
> +++ b/makedumpfile.c
> @@ -4707,6 +4707,7 @@ write_kdump_header(void)
> /*
> * Write sub header
> */
> + memset(&sub_dump_header, 0, sizeof(struct kdump_sub_header));
> sub_dump_header.phys_base = info->phys_base;
> sub_dump_header.dump_level = info->dump_level;
> size = sizeof(struct kdump_sub_header);
>
> _______________________________________________
> kexec mailing list
> kexec at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
>
More information about the kexec
mailing list