[patch] [PATCH] Fix memory leaks
Ken'ichi Ohmichi
oomichi at mxs.nes.nec.co.jp
Thu Sep 11 22:03:41 EDT 2008
Hi Bernhard,
Good catching :-)
This patch also will be merged to the next release.
Thanks
Ken'ichi Ohmichi
Bernhard Walle wrote:
> This memory leaks appear in valigrind run:
>
> makedumpfile Completed.
> ==6024==
> ==6024== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 2 from 1)
> ==6024== malloc/free: in use at exit: 8,838 bytes in 5 blocks.
> ==6024== malloc/free: 80 allocs, 75 frees, 192,858 bytes allocated.
> ==6024== For counts of detected errors, rerun with: -v
> ==6024== searching for pointers to 5 not-freed blocks.
> ==6024== checked 70,864 bytes.
> ==6024==
> ==6024==
> ==6024== 22 bytes in 1 blocks are definitely lost in loss record 2 of 5
> ==6024== at 0x4C2560E: malloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
> ==6024== by 0x416955: initial (makedumpfile.c:3318)
> ==6024== by 0x418954: create_dumpfile (makedumpfile.c:6000)
> ==6024== by 0x4191AA: main (makedumpfile.c:6299)
> ==6024==
> ==6024==
> ==6024== 4,120 bytes in 1 blocks are definitely lost in loss record 4 of 5
> ==6024== at 0x4C2560E: malloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
> ==6024== by 0x409F72: prepare_dump_bitmap (makedumpfile.c:4338)
> ==6024== by 0x4187D8: create_dump_bitmap (makedumpfile.c:4361)
> ==6024== by 0x41886C: create_dumpfile (makedumpfile.c:6005)
> ==6024== by 0x4191AA: main (makedumpfile.c:6299)
> ==6024==
> ==6024==
> ==6024== 4,120 bytes in 1 blocks are definitely lost in loss record 5 of 5
> ==6024== at 0x4C2560E: malloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
> ==6024== by 0x409F51: prepare_dump_bitmap (makedumpfile.c:4333)
> ==6024== by 0x4187D8: create_dump_bitmap (makedumpfile.c:4361)
> ==6024== by 0x41886C: create_dumpfile (makedumpfile.c:6005)
> ==6024== by 0x4191AA: main (makedumpfile.c:6299)
> ==6024==
> ==6024== LEAK SUMMARY:
> ==6024== definitely lost: 8,262 bytes in 3 blocks.
> ==6024== possibly lost: 0 bytes in 0 blocks.
> ==6024== still reachable: 576 bytes in 2 blocks.
> ==6024== suppressed: 0 bytes in 0 blocks.
> ==6024== Reachable blocks (those to which a pointer was found) are not shown.
> ==6024== To see them, rerun with: --leak-check=full --show-reachable=yes
>
> Although it's not strictly necessary to free memory at the end of program run since
> it gets freed automatically, it still makes sense to have a clean valgrind run to be
> able to check the program for "real" memory leaks with valgrind.
>
>
> Signed-off-by: Bernhard Walle <bwalle at suse.de>
>
> ---
> makedumpfile.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> --- a/makedumpfile.c
> +++ b/makedumpfile.c
> @@ -5268,6 +5268,14 @@ close_dump_bitmap(void)
> ERRMSG("Can't close the bitmap file(%s). %s\n",
> info->name_bitmap, strerror(errno));
> free(info->name_bitmap);
> +
> + /* free 1st bitmap */
> + free(info->bitmap1);
> + info->bitmap1 = NULL;
> +
> + /* free 2nd bitmap */
> + free(info->bitmap2);
> + info->bitmap2 = NULL;
> }
>
> void
> @@ -5332,6 +5340,10 @@ close_files_for_creating_dumpfile(void)
> else if (info->dump_level > DL_EXCLUDE_ZERO)
> close_kernel_file();
>
> + /* free name for vmcoreinfo */
> + free(info->name_vmcoreinfo);
> + info->name_vmcoreinfo = NULL;
> +
> close_dump_memory();
>
> close_dump_file();
>
> _______________________________________________
> kexec mailing list
> kexec at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
>
More information about the kexec
mailing list