[PATCH] backends/cryptodev-builtin: Fix local_error leaks

Li Zhijian via posted 1 patch 1 week, 4 days ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20240422085312.1037646-1-lizhijian@fujitsu.com
Maintainers: "Gonglei (Arei)" <arei.gonglei@huawei.com>, Zhenwei Pi <pizhenwei@bytedance.com>
backends/cryptodev-builtin.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
[PATCH] backends/cryptodev-builtin: Fix local_error leaks
Posted by Li Zhijian via 1 week, 4 days ago
It seems that this error does not need to be propagated to the upper,
directly output the error to avoid the leaks

Closes: https://gitlab.com/qemu-project/qemu/-/issues/2283
Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
---
 backends/cryptodev-builtin.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/backends/cryptodev-builtin.c b/backends/cryptodev-builtin.c
index a514bbb310..940104ee55 100644
--- a/backends/cryptodev-builtin.c
+++ b/backends/cryptodev-builtin.c
@@ -23,6 +23,7 @@
 
 #include "qemu/osdep.h"
 #include "sysemu/cryptodev.h"
+#include "qemu/error-report.h"
 #include "qapi/error.h"
 #include "standard-headers/linux/virtio_crypto.h"
 #include "crypto/cipher.h"
@@ -396,8 +397,8 @@ static int cryptodev_builtin_create_session(
     case VIRTIO_CRYPTO_HASH_CREATE_SESSION:
     case VIRTIO_CRYPTO_MAC_CREATE_SESSION:
     default:
-        error_setg(&local_error, "Unsupported opcode :%" PRIu32 "",
-                   sess_info->op_code);
+        error_report("Unsupported opcode :%" PRIu32 "",
+                     sess_info->op_code);
         return -VIRTIO_CRYPTO_NOTSUPP;
     }
 
@@ -554,8 +555,8 @@ static int cryptodev_builtin_operation(
 
     if (op_info->session_id >= MAX_NUM_SESSIONS ||
               builtin->sessions[op_info->session_id] == NULL) {
-        error_setg(&local_error, "Cannot find a valid session id: %" PRIu64 "",
-                   op_info->session_id);
+        error_report("Cannot find a valid session id: %" PRIu64 "",
+                     op_info->session_id);
         return -VIRTIO_CRYPTO_INVSESS;
     }
 
-- 
2.31.1
Re: [PATCH] backends/cryptodev-builtin: Fix local_error leaks
Posted by Michael Tokarev 1 week, 2 days ago
22.04.2024 11:53, Li Zhijian via wrote:
> It seems that this error does not need to be propagated to the upper,
> directly output the error to avoid the leaks
> 
> Closes: https://gitlab.com/qemu-project/qemu/-/issues/2283
> Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>

Applied to trivial-patches tree, with s/Closes/Resolves/ and
with addition of "Fixes:" suggested by zhenwei pi.

Thanks,

/mjt
Re: [PATCH] backends/cryptodev-builtin: Fix local_error leaks
Posted by 皮振伟 1 week, 4 days ago
Hi, Please add the following message: Fixes: 2fda101de07("virtio-crypto:
Support asynchronous mode") LGTM. Reviewed-by: zhenwei pi <
pizhenwei@bytedance.com> > From:"Li Zhijian"<lizhijian@fujitsu.com> >
Date:Mon, Apr 22, 2024, 16:50 > Subject:[External] [PATCH]
backends/cryptodev-builtin: Fix local_error leaks > To:<
arei.gonglei@huawei.com>,<pizhenwei@bytedance.com> > Cc:<philmd@linaro.org
>,<qemu-devel@nongnu.org>,"Li Zhijian"<lizhijian@fujitsu.com> > It seems
that this error does not need to be propagated to the upper, > directly
output the error to avoid the leaks >  > Closes:
https://gitlab.com/qemu-project/qemu/-/issues/2283 > Signed-off-by: Li
Zhijian <lizhijian@fujitsu.com> > --- >  backends/cryptodev-builtin.c | 9
+++++---- >  1 file changed, 5 insertions(+), 4 deletions(-) >  > diff
--git a/backends/cryptodev-builtin.c b/backends/cryptodev-builtin.c > index
a514bbb310..940104ee55 100644 > --- a/backends/cryptodev-builtin.c > +++
b/backends/cryptodev-builtin.c > @@ -23,6 +23,7 @@ >   >  #include
"qemu/osdep.h" >  #include "sysemu/cryptodev.h" > +#include
"qemu/error-report.h" >  #include "qapi/error.h" >  #include
"standard-headers/linux/virtio_crypto.h" >  #include "crypto/cipher.h" > @@
-396,8 +397,8 @@ static int cryptodev_builtin_create_session( >      case
VIRTIO_CRYPTO_HASH_CREATE_SESSION: >      case
VIRTIO_CRYPTO_MAC_CREATE_SESSION: >      default: > -
error_setg(&local_error, "Unsupported opcode :%" PRIu32 "", > -
      sess_info->op_code); > +        error_report("Unsupported opcode :%"
PRIu32 "", > +                     sess_info->op_code); >          return
-VIRTIO_CRYPTO_NOTSUPP; >      } >   > @@ -554,8 +555,8 @@ static int
cryptodev_builtin_operation( >   >      if (op_info->session_id >=
MAX_NUM_SESSIONS || >                builtin->sessions[op_info->session_id]
== NULL) { > -        error_setg(&local_error, "Cannot find a valid session
id: %" PRIu64 "", > -                   op_info->session_id); > +
error_report("Cannot find a valid session id: %" PRIu64 "", > +
        op_info->session_id); >          return -VIRTIO_CRYPTO_INVSESS; >
   } >   > --  > 2.31.1
Re: [PATCH] backends/cryptodev-builtin: Fix local_error leaks
Posted by Philippe Mathieu-Daudé 1 week, 4 days ago
On 22/4/24 10:53, Li Zhijian wrote:
> It seems that this error does not need to be propagated to the upper,
> directly output the error to avoid the leaks
> 
> Closes: https://gitlab.com/qemu-project/qemu/-/issues/2283
> Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
> ---
>   backends/cryptodev-builtin.c | 9 +++++----
>   1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/backends/cryptodev-builtin.c b/backends/cryptodev-builtin.c
> index a514bbb310..940104ee55 100644
> --- a/backends/cryptodev-builtin.c
> +++ b/backends/cryptodev-builtin.c
> @@ -23,6 +23,7 @@
>   
>   #include "qemu/osdep.h"
>   #include "sysemu/cryptodev.h"
> +#include "qemu/error-report.h"
>   #include "qapi/error.h"
>   #include "standard-headers/linux/virtio_crypto.h"
>   #include "crypto/cipher.h"
> @@ -396,8 +397,8 @@ static int cryptodev_builtin_create_session(
>       case VIRTIO_CRYPTO_HASH_CREATE_SESSION:
>       case VIRTIO_CRYPTO_MAC_CREATE_SESSION:
>       default:
> -        error_setg(&local_error, "Unsupported opcode :%" PRIu32 "",
> -                   sess_info->op_code);
> +        error_report("Unsupported opcode :%" PRIu32 "",
> +                     sess_info->op_code);
>           return -VIRTIO_CRYPTO_NOTSUPP;
>       }
>   
> @@ -554,8 +555,8 @@ static int cryptodev_builtin_operation(
>   
>       if (op_info->session_id >= MAX_NUM_SESSIONS ||
>                 builtin->sessions[op_info->session_id] == NULL) {
> -        error_setg(&local_error, "Cannot find a valid session id: %" PRIu64 "",
> -                   op_info->session_id);
> +        error_report("Cannot find a valid session id: %" PRIu64 "",
> +                     op_info->session_id);
>           return -VIRTIO_CRYPTO_INVSESS;
>       }
>   

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>