Răsfoiți Sursa

[GFS2] gfs2_dir_read_data(): fix uninitialized variable usage

In the "if (extlen)" case, "bh" was used uninitialized.

This patch changes the code to what seems to have been intended.

Spotted by the Coverity checker.

This patch also removes a pointless "bh = NULL" asignment (the variable
is never accessed again after this point).

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Adrian Bunk 19 ani în urmă
părinte
comite
b7d8ac3e17
1 a modificat fișierele cu 1 adăugiri și 3 ștergeri
  1. 1 3
      fs/gfs2/dir.c

+ 1 - 3
fs/gfs2/dir.c

@@ -315,8 +315,7 @@ static int gfs2_dir_read_data(struct gfs2_inode *ip, char *buf, u64 offset,
 			if (!ra)
 			if (!ra)
 				extlen = 1;
 				extlen = 1;
 			bh = gfs2_meta_ra(ip->i_gl, dblock, extlen);
 			bh = gfs2_meta_ra(ip->i_gl, dblock, extlen);
-		}
-		if (!bh) {
+		} else {
 			error = gfs2_meta_read(ip->i_gl, dblock, DIO_WAIT, &bh);
 			error = gfs2_meta_read(ip->i_gl, dblock, DIO_WAIT, &bh);
 			if (error)
 			if (error)
 				goto fail;
 				goto fail;
@@ -330,7 +329,6 @@ static int gfs2_dir_read_data(struct gfs2_inode *ip, char *buf, u64 offset,
 		extlen--;
 		extlen--;
 		memcpy(buf, bh->b_data + o, amount);
 		memcpy(buf, bh->b_data + o, amount);
 		brelse(bh);
 		brelse(bh);
-		bh = NULL;
 		buf += amount;
 		buf += amount;
 		copied += amount;
 		copied += amount;
 		lblock++;
 		lblock++;