xref: /OK3568_Linux_fs/buildroot/boot/grub2/0126-fs-btrfs-Squash-some-uninitialized-reads.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunFrom b911884dd707ba1e6f641eb17857df3155013a45 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Daniel Axtens <dja@axtens.net>
3*4882a593SmuzhiyunDate: Mon, 18 Jan 2021 17:27:18 +1100
4*4882a593SmuzhiyunSubject: [PATCH] fs/btrfs: Squash some uninitialized reads
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunWe need to check errors before calling into a function that uses the result.
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunSigned-off-by: Daniel Axtens <dja@axtens.net>
9*4882a593SmuzhiyunReviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
10*4882a593SmuzhiyunSigned-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com>
11*4882a593Smuzhiyun---
12*4882a593Smuzhiyun grub-core/fs/btrfs.c | 4 ++--
13*4882a593Smuzhiyun 1 file changed, 2 insertions(+), 2 deletions(-)
14*4882a593Smuzhiyun
15*4882a593Smuzhiyundiff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c
16*4882a593Smuzhiyunindex e4e87ba..d489cb0 100644
17*4882a593Smuzhiyun--- a/grub-core/fs/btrfs.c
18*4882a593Smuzhiyun+++ b/grub-core/fs/btrfs.c
19*4882a593Smuzhiyun@@ -381,9 +381,9 @@ next (struct grub_btrfs_data *data,
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun       err = grub_btrfs_read_logical (data, grub_le_to_cpu64 (node.addr),
22*4882a593Smuzhiyun 				     &head, sizeof (head), 0);
23*4882a593Smuzhiyun-      check_btrfs_header (data, &head, grub_le_to_cpu64 (node.addr));
24*4882a593Smuzhiyun       if (err)
25*4882a593Smuzhiyun 	return -err;
26*4882a593Smuzhiyun+      check_btrfs_header (data, &head, grub_le_to_cpu64 (node.addr));
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun       save_ref (desc, grub_le_to_cpu64 (node.addr), 0,
29*4882a593Smuzhiyun 		grub_le_to_cpu32 (head.nitems), !head.level);
30*4882a593Smuzhiyun@@ -443,9 +443,9 @@ lower_bound (struct grub_btrfs_data *data,
31*4882a593Smuzhiyun       /* FIXME: preread few nodes into buffer. */
32*4882a593Smuzhiyun       err = grub_btrfs_read_logical (data, addr, &head, sizeof (head),
33*4882a593Smuzhiyun 				     recursion_depth + 1);
34*4882a593Smuzhiyun-      check_btrfs_header (data, &head, addr);
35*4882a593Smuzhiyun       if (err)
36*4882a593Smuzhiyun 	return err;
37*4882a593Smuzhiyun+      check_btrfs_header (data, &head, addr);
38*4882a593Smuzhiyun       addr += sizeof (head);
39*4882a593Smuzhiyun       if (head.level)
40*4882a593Smuzhiyun 	{
41*4882a593Smuzhiyun--
42*4882a593Smuzhiyun2.14.2
43*4882a593Smuzhiyun
44