Преглед изворни кода

GFS2: Fix a use-after-free that coverity spotted

In function gfs2_inplace_release it was trying to unlock a gfs2_holder
structure associated with a reservation, after said reservation was
freed. The problem is that the statements have the wrong order.
This patch corrects the order so that the reservation is freed after
the gfs2_holder is unlocked.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Bob Peterson пре 14 година
родитељ
комит
49528b4e47
1 измењених фајлова са 1 додато и 1 уклоњено
  1. 1 1
      fs/gfs2/rgrp.c

+ 1 - 1
fs/gfs2/rgrp.c

@@ -1108,9 +1108,9 @@ void gfs2_inplace_release(struct gfs2_inode *ip)
 {
 {
 	struct gfs2_blkreserv *rs = ip->i_res;
 	struct gfs2_blkreserv *rs = ip->i_res;
 
 
-	gfs2_blkrsv_put(ip);
 	if (rs->rs_rgd_gh.gh_gl)
 	if (rs->rs_rgd_gh.gh_gl)
 		gfs2_glock_dq_uninit(&rs->rs_rgd_gh);
 		gfs2_glock_dq_uninit(&rs->rs_rgd_gh);
+	gfs2_blkrsv_put(ip);
 }
 }
 
 
 /**
 /**