Просмотр исходного кода

[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 лет назад
Родитель
Сommit
b7d8ac3e17
1 измененных файлов с 1 добавлено и 3 удалено
  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++;