X-Git-Url: https://git.whamcloud.com/?p=tools%2Fe2fsprogs.git;a=blobdiff_plain;f=e2fsck%2Fregion.c;h=788e0d0f5b586cba265c94821a46536f1918b5d4;hp=d5b37df85db7782ceceece0c477d8d627b6cf2d6;hb=cad09f5e6107df65f7927a1d8e104de74cbb16d5;hpb=9450cab0c2398871f026afcb56a3eab02ed78b40 diff --git a/e2fsck/region.c b/e2fsck/region.c index d5b37df..788e0d0 100644 --- a/e2fsck/region.c +++ b/e2fsck/region.c @@ -36,11 +36,12 @@ struct region_struct { region_t region_create(region_addr_t min, region_addr_t max) { region_t region; + errcode_t retval; - region = malloc(sizeof(struct region_struct)); - if (!region) + retval = ext2fs_get_memzero(sizeof(struct region_struct), ®ion); + if (retval) return NULL; - memset(region, 0, sizeof(struct region_struct)); + region->min = min; region->max = max; region->last = NULL; @@ -53,16 +54,17 @@ void region_free(region_t region) for (r = region->allocated; r; r = next) { next = r->next; - free(r); + ext2fs_free_mem(&r); } memset(region, 0, sizeof(struct region_struct)); - free(region); + ext2fs_free_mem(®ion); } int region_allocate(region_t region, region_addr_t start, int n) { struct region_el *r, *new_region, *prev, *next; region_addr_t end; + errcode_t retval; end = start+n; if ((start < region->min) || (end > region->max)) @@ -105,7 +107,7 @@ int region_allocate(region_t region, region_addr_t start, int n) if (end == next->start) { r->end = next->end; r->next = next->next; - free(next); + ext2fs_free_mem(&next); if (!r->next) region->last = r; return 0; @@ -121,8 +123,8 @@ int region_allocate(region_t region, region_addr_t start, int n) * Insert a new region element structure into the linked list */ append_to_list: - new_region = malloc(sizeof(struct region_el)); - if (!new_region) + retval = ext2fs_get_mem(sizeof(struct region_el), &new_region); + if (retval) return -1; new_region->start = start; new_region->end = start + n;