From 36066952e5a0f9e1b72e98c64ff33df2b80af125 Mon Sep 17 00:00:00 2001 From: Marius Strobl Date: Wed, 2 Jun 2010 17:17:11 +0000 Subject: [PATCH] Don't leak memory on destruction. Reviewed by: marcel MFC after: 3 days --- sys/geom/part/g_part_bsd.c | 6 ++++++ sys/geom/part/g_part_gpt.c | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/sys/geom/part/g_part_bsd.c b/sys/geom/part/g_part_bsd.c index e99f0bbf821..7e75199f0bc 100644 --- a/sys/geom/part/g_part_bsd.c +++ b/sys/geom/part/g_part_bsd.c @@ -240,6 +240,12 @@ g_part_bsd_create(struct g_part_table *basetable, struct g_part_parms *gpp) static int g_part_bsd_destroy(struct g_part_table *basetable, struct g_part_parms *gpp) { + struct g_part_bsd_table *table; + + table = (struct g_part_bsd_table *)basetable; + if (table->bbarea != NULL) + g_free(table->bbarea); + table->bbarea = NULL; /* Wipe the second sector to clear the partitioning. */ basetable->gpt_smhead |= 2; diff --git a/sys/geom/part/g_part_gpt.c b/sys/geom/part/g_part_gpt.c index a6f74907102..46a92abaa0d 100644 --- a/sys/geom/part/g_part_gpt.c +++ b/sys/geom/part/g_part_gpt.c @@ -486,6 +486,12 @@ g_part_gpt_create(struct g_part_table *basetable, struct g_part_parms *gpp) static int g_part_gpt_destroy(struct g_part_table *basetable, struct g_part_parms *gpp) { + struct g_part_gpt_table *table; + + table = (struct g_part_gpt_table *)basetable; + if (table->hdr != NULL) + g_free(table->hdr); + table->hdr = NULL; /* * Wipe the first 2 sectors as well as the last to clear the