aboutsummaryrefslogtreecommitdiff
path: root/e2fsprogs/ext2fs/irel_ma.c
diff options
context:
space:
mode:
Diffstat (limited to 'e2fsprogs/ext2fs/irel_ma.c')
-rw-r--r--e2fsprogs/ext2fs/irel_ma.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/e2fsprogs/ext2fs/irel_ma.c b/e2fsprogs/ext2fs/irel_ma.c
index d9e73f73c..f4fe1e0f3 100644
--- a/e2fsprogs/ext2fs/irel_ma.c
+++ b/e2fsprogs/ext2fs/irel_ma.c
@@ -309,8 +309,7 @@ static errcode_t ima_move(ext2_irel irel, ext2_ino_t old, ext2_ino_t new)
309 return ENOENT; 309 return ENOENT;
310 310
311 ma->entries[(unsigned) new] = ma->entries[(unsigned) old]; 311 ma->entries[(unsigned) new] = ma->entries[(unsigned) old];
312 if (ma->ref_entries[(unsigned) new].refs) 312 ext2fs_free_mem(&ma->ref_entries[(unsigned) new].refs);
313 ext2fs_free_mem(&ma->ref_entries[(unsigned) new].refs);
314 ma->ref_entries[(unsigned) new] = ma->ref_entries[(unsigned) old]; 313 ma->ref_entries[(unsigned) new] = ma->ref_entries[(unsigned) old];
315 314
316 ma->entries[(unsigned) old].new = 0; 315 ma->entries[(unsigned) old].new = 0;
@@ -332,8 +331,7 @@ static errcode_t ima_delete(ext2_irel irel, ext2_ino_t old)
332 return ENOENT; 331 return ENOENT;
333 332
334 ma->entries[old].new = 0; 333 ma->entries[old].new = 0;
335 if (ma->ref_entries[(unsigned) old].refs) 334 ext2fs_free_mem(&ma->ref_entries[(unsigned) old].refs);
336 ext2fs_free_mem(&ma->ref_entries[(unsigned) old].refs);
337 ma->orig_map[ma->entries[(unsigned) old].orig] = 0; 335 ma->orig_map[ma->entries[(unsigned) old].orig] = 0;
338 336
339 ma->ref_entries[(unsigned) old].num = 0; 337 ma->ref_entries[(unsigned) old].num = 0;
@@ -352,21 +350,17 @@ static errcode_t ima_free(ext2_irel irel)
352 ma = irel->priv_data; 350 ma = irel->priv_data;
353 351
354 if (ma) { 352 if (ma) {
355 if (ma->orig_map) 353 ext2fs_free_mem(&ma->orig_map);
356 ext2fs_free_mem(&ma->orig_map); 354 ext2fs_free_mem(&ma->entries);
357 if (ma->entries)
358 ext2fs_free_mem(&ma->entries);
359 if (ma->ref_entries) { 355 if (ma->ref_entries) {
360 for (ino = 0; ino <= ma->max_inode; ino++) { 356 for (ino = 0; ino <= ma->max_inode; ino++) {
361 if (ma->ref_entries[(unsigned) ino].refs) 357 ext2fs_free_mem(&ma->ref_entries[(unsigned) ino].refs);
362 ext2fs_free_mem(&ma->ref_entries[(unsigned) ino].refs);
363 } 358 }
364 ext2fs_free_mem(&ma->ref_entries); 359 ext2fs_free_mem(&ma->ref_entries);
365 } 360 }
366 ext2fs_free_mem(&ma); 361 ext2fs_free_mem(&ma);
367 } 362 }
368 if (irel->name) 363 ext2fs_free_mem(&irel->name);
369 ext2fs_free_mem(&irel->name);
370 ext2fs_free_mem(&irel); 364 ext2fs_free_mem(&irel);
371 return 0; 365 return 0;
372} 366}