diff mbox series

ceph: add checking of wait_for_completion_killable() return value

Message ID 20250606190432.438187-1-slava@dubeyko.com
State New
Headers show
Series ceph: add checking of wait_for_completion_killable() return value | expand

Commit Message

Viacheslav Dubeyko June 6, 2025, 7:04 p.m. UTC
From: Viacheslav Dubeyko <Slava.Dubeyko@ibm.com>

The Coverity Scan service has detected the calling of
wait_for_completion_killable() without checking the return
value in ceph_lock_wait_for_completion() [1]. The CID 1636232
defect contains explanation: "If the function returns an error
value, the error value may be mistaken for a normal value.
In ceph_lock_wait_for_completion(): Value returned from
a function is not checked for errors before being used. (CWE-252)".

The patch adds the checking of wait_for_completion_killable()
return value and return the error code from
ceph_lock_wait_for_completion().

[1] https://scan5.scan.coverity.com/#/project-view/64304/10063?selectedIssue=1636232

Signed-off-by: Viacheslav Dubeyko <Slava.Dubeyko@ibm.com>
---
 fs/ceph/locks.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Alex Markuze June 8, 2025, 3:07 p.m. UTC | #1
Reviewed by: Alex Markuze <amarkuze@redhat.com>

On Fri, Jun 6, 2025 at 10:04 PM Viacheslav Dubeyko <slava@dubeyko.com> wrote:
>
> From: Viacheslav Dubeyko <Slava.Dubeyko@ibm.com>
>
> The Coverity Scan service has detected the calling of
> wait_for_completion_killable() without checking the return
> value in ceph_lock_wait_for_completion() [1]. The CID 1636232
> defect contains explanation: "If the function returns an error
> value, the error value may be mistaken for a normal value.
> In ceph_lock_wait_for_completion(): Value returned from
> a function is not checked for errors before being used. (CWE-252)".
>
> The patch adds the checking of wait_for_completion_killable()
> return value and return the error code from
> ceph_lock_wait_for_completion().
>
> [1] https://scan5.scan.coverity.com/#/project-view/64304/10063?selectedIssue=1636232
>
> Signed-off-by: Viacheslav Dubeyko <Slava.Dubeyko@ibm.com>
> ---
>  fs/ceph/locks.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/fs/ceph/locks.c b/fs/ceph/locks.c
> index ebf4ac0055dd..dd764f9c64b9 100644
> --- a/fs/ceph/locks.c
> +++ b/fs/ceph/locks.c
> @@ -221,7 +221,10 @@ static int ceph_lock_wait_for_completion(struct ceph_mds_client *mdsc,
>         if (err && err != -ERESTARTSYS)
>                 return err;
>
> -       wait_for_completion_killable(&req->r_safe_completion);
> +       err = wait_for_completion_killable(&req->r_safe_completion);
> +       if (err)
> +               return err;
> +
>         return 0;
>  }
>
> --
> 2.49.0
>
diff mbox series

Patch

diff --git a/fs/ceph/locks.c b/fs/ceph/locks.c
index ebf4ac0055dd..dd764f9c64b9 100644
--- a/fs/ceph/locks.c
+++ b/fs/ceph/locks.c
@@ -221,7 +221,10 @@  static int ceph_lock_wait_for_completion(struct ceph_mds_client *mdsc,
 	if (err && err != -ERESTARTSYS)
 		return err;
 
-	wait_for_completion_killable(&req->r_safe_completion);
+	err = wait_for_completion_killable(&req->r_safe_completion);
+	if (err)
+		return err;
+
 	return 0;
 }