From: Carlos Maiolino <cmaiolino@xxxxxxxxxx> Add proper exit error paths to avoid checking all pointers at the current path Fixes-coverity-id: 1512654 Signed-off-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx> --- repair/rmap.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/repair/rmap.c b/repair/rmap.c index 0253c0c36..8b76e290b 100644 --- a/repair/rmap.c +++ b/repair/rmap.c @@ -1002,7 +1002,7 @@ rmaps_verify_btree( if (error) { do_warn(_("Could not read AGF %u to check rmap btree.\n"), agno); - goto err; + goto err_agf; } /* Leave the per-ag data "uninitialized" since we rewrite it later */ @@ -1011,7 +1011,7 @@ rmaps_verify_btree( bt_cur = libxfs_rmapbt_init_cursor(mp, NULL, agbp, pag); if (!bt_cur) { do_warn(_("Not enough memory to check reverse mappings.\n")); - goto err; + goto err_bt_cur; } rm_rec = pop_slab_cursor(rm_cur); @@ -1021,7 +1021,7 @@ rmaps_verify_btree( do_warn( _("Could not read reverse-mapping record for (%u/%u).\n"), agno, rm_rec->rm_startblock); - goto err; + goto err_loop; } /* @@ -1037,7 +1037,7 @@ _("Could not read reverse-mapping record for (%u/%u).\n"), do_warn( _("Could not read reverse-mapping record for (%u/%u).\n"), agno, rm_rec->rm_startblock); - goto err; + goto err_loop; } } if (!have) { @@ -1088,13 +1088,12 @@ next_loop: rm_rec = pop_slab_cursor(rm_cur); } -err: - if (bt_cur) - libxfs_btree_del_cursor(bt_cur, XFS_BTREE_NOERROR); - if (pag) - libxfs_perag_put(pag); - if (agbp) - libxfs_buf_relse(agbp); +err_loop: + libxfs_btree_del_cursor(bt_cur, XFS_BTREE_NOERROR); +err_bt_cur: + libxfs_buf_relse(agbp); +err_agf: + libxfs_perag_put(pag); free_slab_cursor(&rm_cur); }