2021-08-18 13:21:49

by Colin King

[permalink] [raw]
Subject: [PATCH][next] futex: fix assigned ret variable that is never read

From: Colin Ian King <[email protected]>

Currently the check on the rt_waiter and top_waiter->pi_state is
assigning an error return code to ret but this later gets re-assigned,
hence the check is currently ineffective. I believe the original
intent was to return -EINVAL rather than assign it to ret. Fix this.

Addresses-Coverity: ("Unused value")
Fixes: dc7109aaa233 ("futex: Validate waiter correctly in futex_proxy_trylock_atomic()")
Signed-off-by: Colin Ian King <[email protected]>
---
kernel/futex.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/futex.c b/kernel/futex.c
index e7b4c6121da4..30e7daebaec8 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -2025,7 +2025,7 @@ futex_proxy_trylock_atomic(u32 __user *pifutex, struct futex_hash_bucket *hb1,
* and waiting on the 'waitqueue' futex which is always !PI.
*/
if (!top_waiter->rt_waiter || top_waiter->pi_state)
- ret = -EINVAL;
+ return -EINVAL;

/* Ensure we requeue to the expected futex. */
if (!match_futex(top_waiter->requeue_pi_key, key2))
--
2.32.0


2021-09-01 19:03:19

by André Almeida

[permalink] [raw]
Subject: Re: [PATCH][next] futex: fix assigned ret variable that is never read

Hi Colin,

Às 10:18 de 18/08/21, Colin King escreveu:
> From: Colin Ian King <[email protected]>
>
> Currently the check on the rt_waiter and top_waiter->pi_state is
> assigning an error return code to ret but this later gets re-assigned,
> hence the check is currently ineffective. I believe the original
> intent was to return -EINVAL rather than assign it to ret. Fix this.
>
> Addresses-Coverity: ("Unused value")
> Fixes: dc7109aaa233 ("futex: Validate waiter correctly in futex_proxy_trylock_atomic()")
> Signed-off-by: Colin Ian King <[email protected]>> ---

Reviewed-by: André Almeida <[email protected]>

2021-09-01 20:33:25

by Davidlohr Bueso

[permalink] [raw]
Subject: Re: [PATCH][next] futex: fix assigned ret variable that is never read

On Wed, 18 Aug 2021, Colin King wrote:

>From: Colin Ian King <[email protected]>
>
>Currently the check on the rt_waiter and top_waiter->pi_state is
>assigning an error return code to ret but this later gets re-assigned,
>hence the check is currently ineffective. I believe the original
>intent was to return -EINVAL rather than assign it to ret. Fix this.

LGTM.

Acked-by: Davidlohr Bueso <[email protected]>

>
>Addresses-Coverity: ("Unused value")
>Fixes: dc7109aaa233 ("futex: Validate waiter correctly in futex_proxy_trylock_atomic()")
>Signed-off-by: Colin Ian King <[email protected]>
>---
> kernel/futex.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/kernel/futex.c b/kernel/futex.c
>index e7b4c6121da4..30e7daebaec8 100644
>--- a/kernel/futex.c
>+++ b/kernel/futex.c
>@@ -2025,7 +2025,7 @@ futex_proxy_trylock_atomic(u32 __user *pifutex, struct futex_hash_bucket *hb1,
> * and waiting on the 'waitqueue' futex which is always !PI.
> */
> if (!top_waiter->rt_waiter || top_waiter->pi_state)
>- ret = -EINVAL;
>+ return -EINVAL;
>
> /* Ensure we requeue to the expected futex. */
> if (!match_futex(top_waiter->requeue_pi_key, key2))
>--
>2.32.0
>

2021-09-01 23:49:40

by tip-bot2 for Jacob Pan

[permalink] [raw]
Subject: [tip: locking/urgent] futex: Return error code instead of assigning it without effect

The following commit has been merged into the locking/urgent branch of tip:

Commit-ID: 1f15eb89144fdd4c881ef7181d51e989a732f4f0
Gitweb: https://git.kernel.org/tip/1f15eb89144fdd4c881ef7181d51e989a732f4f0
Author: Colin Ian King <[email protected]>
AuthorDate: Wed, 18 Aug 2021 14:18:40 +01:00
Committer: Thomas Gleixner <[email protected]>
CommitterDate: Wed, 01 Sep 2021 21:26:33 +02:00

futex: Return error code instead of assigning it without effect

The check on the rt_waiter and top_waiter->pi_state is assigning an error
return code to ret but this later gets re-assigned, hence the check is
ineffective.

Return -EINVAL rather than assigning it to ret which was the original
intent.

Fixes: dc7109aaa233 ("futex: Validate waiter correctly in futex_proxy_trylock_atomic()")
Addresses-Coverity: ("Unused value")
Signed-off-by: Colin Ian King <[email protected]>
Signed-off-by: Thomas Gleixner <[email protected]>
Reviewed-by: André Almeida <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
---
kernel/futex.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/futex.c b/kernel/futex.c
index e7b4c61..30e7dae 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -2025,7 +2025,7 @@ futex_proxy_trylock_atomic(u32 __user *pifutex, struct futex_hash_bucket *hb1,
* and waiting on the 'waitqueue' futex which is always !PI.
*/
if (!top_waiter->rt_waiter || top_waiter->pi_state)
- ret = -EINVAL;
+ return -EINVAL;

/* Ensure we requeue to the expected futex. */
if (!match_futex(top_waiter->requeue_pi_key, key2))

2021-09-02 23:48:32

by tip-bot2 for Jacob Pan

[permalink] [raw]
Subject: [tip: locking/urgent] futex: Return error code instead of assigning it without effect

The following commit has been merged into the locking/urgent branch of tip:

Commit-ID: a974b54036f79dd5e395e9f6c80c3decb4661a14
Gitweb: https://git.kernel.org/tip/a974b54036f79dd5e395e9f6c80c3decb4661a14
Author: Colin Ian King <[email protected]>
AuthorDate: Wed, 18 Aug 2021 14:18:40 +01:00
Committer: Thomas Gleixner <[email protected]>
CommitterDate: Thu, 02 Sep 2021 22:07:18 +02:00

futex: Return error code instead of assigning it without effect

The check on the rt_waiter and top_waiter->pi_state is assigning an error
return code to ret but this later gets re-assigned, hence the check is
ineffective.

Return -EINVAL rather than assigning it to ret which was the original
intent.

Fixes: dc7109aaa233 ("futex: Validate waiter correctly in futex_proxy_trylock_atomic()")
Addresses-Coverity: ("Unused value")
Signed-off-by: Colin Ian King <[email protected]>
Signed-off-by: Thomas Gleixner <[email protected]>
Reviewed-by: André Almeida <[email protected]>
Link: https://lore.kernel.org/r/[email protected]

---
kernel/futex.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/futex.c b/kernel/futex.c
index e7b4c61..30e7dae 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -2025,7 +2025,7 @@ futex_proxy_trylock_atomic(u32 __user *pifutex, struct futex_hash_bucket *hb1,
* and waiting on the 'waitqueue' futex which is always !PI.
*/
if (!top_waiter->rt_waiter || top_waiter->pi_state)
- ret = -EINVAL;
+ return -EINVAL;

/* Ensure we requeue to the expected futex. */
if (!match_futex(top_waiter->requeue_pi_key, key2))