Skip to contentSkip to conversation

staging: lustre: remove broken dead code in cfs_cpt_table_create_pattern

PATCH In review Arnd Bergmann 2 participants 4 messages Oct 25, 2016 – Oct 27, 2016 Staging

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/2 staging: lustre: remove broken dead code in cfs_cpt_table_create_pattern

After a recent bugfix, we get a warning about the use of an uninitialized variable:

drivers/staging/lustre/lnet/libcfs/linux/linux-cpu.c: In function 'cfs_cpt_table_create_pattern':
drivers/staging/lustre/lnet/libcfs/linux/linux-cpu.c:833:7: error: 'str' may be used uninitialized in this function [-Werror=maybe-uninitialized]

This part of the function used to not do anything as we would reassign the 'str' pointer to something else right away, but now we pass an uninitialized pointer into 'strchr', which can cause a kernel page fault or worse.

Fixes 239fd5d41f9b ("staging: lustre: libcfs: shortcut to create CPT from NUMA topology")
---
 drivers/staging/lustre/lnet/libcfs/linux/linux-cpu.c | 7 -------
 1 file changed, 7 deletions(-)
drivers/staging/lustre/lnet/libcfs/linux/linux-cpu.c +0 -7
index 464b27923ac0..6a31521f6ae0 100644
@@ -829,13 +829,6 @@ cfs_cpt_table_create_pattern(char *pattern)
 	int			c;
 	int i;
 
-	for (ncpt = 0;; ncpt++) { /* quick scan bracket */
-		str = strchr(str, '[');
-		if (!str)
-			break;
-		str++;
-	}
-
 	str = cfs_trimwhite(pattern);
 	if (*str == 'n' || *str == 'N') {
 		pattern = str + 1;
Signature · 1 line
2.9.0
#1 lore raw

PATCH v2 2/2 staging: lustre: restore initialization of return code

A recent rework removed the initialization of the successful return code from lov_getstripe:

drivers/staging/lustre/lustre/lov/lov_pack.c: In function 'lov_getstripe':
drivers/staging/lustre/lustre/lov/lov_pack.c:426:9: error: 'rc' may be used uninitialized in this function [-Werror=maybe-uninitialized] drivers/staging/lustre/lustre/lov/lov_pack.c:313:6: note: 'rc' was declared here

This adds it back.

Fixes e10a431b3fd0 ("staging: lustre: lov: move LSM to LOV layer")
---
 drivers/staging/lustre/lustre/lov/lov_pack.c | 2 ++
 1 file changed, 2 insertions(+)
drivers/staging/lustre/lustre/lov/lov_pack.c +2 -0
index 17bceadd66f8..ccc1fae35791 100644
@@ -418,6 +418,8 @@ int lov_getstripe(struct lov_object *obj, struct lov_stripe_md *lsm,
 	((struct lov_user_md *)lmmk)->lmm_stripe_count = lum.lmm_stripe_count;
 	if (copy_to_user(lump, lmmk, lmm_size))
 		rc = -EFAULT;
+	else
+		rc = 0;
 
 out_free:
 	kvfree(lmmk);
Signature · 1 line
2.9.0
#2 lore raw
In reply to Arnd Bergmann
Quoted 11 lines · Arnd Bergmann

After a recent bugfix, we get a warning about the use of an uninitialized variable:

drivers/staging/lustre/lnet/libcfs/linux/linux-cpu.c: In function 'cfs_cpt_table_create_pattern':
drivers/staging/lustre/lnet/libcfs/linux/linux-cpu.c:833:7: error: 'str' may be used uninitialized in this function [-Werror=maybe-uninitialized]

This part of the function used to not do anything as we would reassign the 'str' pointer to something else right away, but now we pass an uninitialized pointer into 'strchr', which can cause a kernel page fault or worse.

Quoted 5 lines
Fixes 239fd5d41f9b ("staging: lustre: libcfs: shortcut to create CPT from NUMA topology")
---
 drivers/staging/lustre/lnet/libcfs/linux/linux-cpu.c | 7 -------
 1 file changed, 7 deletions(-)

Hm, I already applied the v1 versions of these, right? What changed with these, they seem identical to me...

thanks,

greg k-h

#3 lore raw
Quoted 12 lines · CEST Greg Kroah-Hartman
Quoted 11 lines · Arnd Bergmann

After a recent bugfix, we get a warning about the use of an uninitialized variable:

drivers/staging/lustre/lnet/libcfs/linux/linux-cpu.c: In function 'cfs_cpt_table_create_pattern':
drivers/staging/lustre/lnet/libcfs/linux/linux-cpu.c:833:7: error: 'str' may be used uninitialized in this function [-Werror=maybe-uninitialized]

This part of the function used to not do anything as we would reassign the 'str' pointer to something else right away, but now we pass an uninitialized pointer into 'strchr', which can cause a kernel page fault or worse.

Quoted 8 lines
Quoted 5 lines
Fixes 239fd5d41f9b ("staging: lustre: libcfs: shortcut to create CPT from NUMA topology")
---
 drivers/staging/lustre/lnet/libcfs/linux/linux-cpu.c | 7 -------
 1 file changed, 7 deletions(-)

Hm, I already applied the v1 versions of these, right? What changed with these, they seem identical to me...

The patches you applied were fine, they just had not made it into linux-next by Tuesday, and I thought they got lost as I had sent them as part of a longer series and I screwed up one of the two changelogs initially (you applied the fixed v2 patch I sent immediately afterwards).

Sorry about the confusion.

Arnd