src/glusterd-snapshot-utils.c: dereferencing the snap_vol before freeing it

The patch fixes CID: 1325520

Change-Id: Ic7d3fac6adabe96d1d44f13b57d6dc67da0476d1
updates: bz#789278
Signed-off-by: Arjun <arjsharm@redhat.com>
This commit is contained in:
Arjun 2018-10-22 13:08:53 +05:30 committed by Amar Tumballi
parent c34e4161f3
commit 63a8d72736

View File

@ -81,26 +81,6 @@ glusterd_cleanup_snaps_for_volume(glusterd_volinfo_t *volinfo)
cds_list_for_each_entry_safe(snap_vol, dummy_snap_vol,
&volinfo->snap_volumes, snapvol_list)
{
ret = glusterd_store_delete_volume(snap_vol);
if (ret) {
gf_msg(this->name, GF_LOG_WARNING, 0, GD_MSG_VOL_DELETE_FAIL,
"Failed to remove "
"volume %s from store",
snap_vol->volname);
op_ret = ret;
continue;
}
ret = glusterd_volinfo_delete(snap_vol);
if (ret) {
gf_msg(this->name, GF_LOG_WARNING, 0, GD_MSG_VOL_DELETE_FAIL,
"Failed to remove "
"volinfo %s ",
snap_vol->volname);
op_ret = ret;
continue;
}
snap = snap_vol->snapshot;
ret = glusterd_store_delete_snap(snap);
if (ret) {
@ -121,6 +101,26 @@ glusterd_cleanup_snaps_for_volume(glusterd_volinfo_t *volinfo)
op_ret = ret;
continue;
}
ret = glusterd_store_delete_volume(snap_vol);
if (ret) {
gf_msg(this->name, GF_LOG_WARNING, 0, GD_MSG_VOL_DELETE_FAIL,
"Failed to remove "
"volume %s from store",
snap_vol->volname);
op_ret = ret;
continue;
}
ret = glusterd_volinfo_delete(snap_vol);
if (ret) {
gf_msg(this->name, GF_LOG_WARNING, 0, GD_MSG_VOL_DELETE_FAIL,
"Failed to remove "
"volinfo %s ",
snap_vol->volname);
op_ret = ret;
continue;
}
}
return op_ret;