[Qemu-devel] [PATCH 3/5] websock: Don't try to set *errp directly

Eduardo Habkost posted 5 patches 8 years, 5 months ago
[Qemu-devel] [PATCH 3/5] websock: Don't try to set *errp directly
Posted by Eduardo Habkost 8 years, 5 months ago
Assigning directly to *errp is not valid, as errp may be NULL,
&error_fatal, or &error_abort.  Use error_propagate() instead.

Cc: "Daniel P. Berrange" <berrange@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 io/channel-websock.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/io/channel-websock.c b/io/channel-websock.c
index 8fabadea2f..5a3badbec2 100644
--- a/io/channel-websock.c
+++ b/io/channel-websock.c
@@ -856,7 +856,7 @@ static ssize_t qio_channel_websock_readv(QIOChannel *ioc,
     ssize_t ret;
 
     if (wioc->io_err) {
-        *errp = error_copy(wioc->io_err);
+        error_propagate(errp, error_copy(wioc->io_err));
         return -1;
     }
 
@@ -902,7 +902,7 @@ static ssize_t qio_channel_websock_writev(QIOChannel *ioc,
     ssize_t ret;
 
     if (wioc->io_err) {
-        *errp = error_copy(wioc->io_err);
+        error_propagate(errp, error_copy(wioc->io_err));
         return -1;
     }
 
-- 
2.11.0.259.g40922b1


Re: [Qemu-devel] [PATCH 3/5] websock: Don't try to set *errp directly
Posted by Markus Armbruster 8 years, 4 months ago
Eduardo Habkost <ehabkost@redhat.com> writes:

> Assigning directly to *errp is not valid, as errp may be NULL,
> &error_fatal, or &error_abort.  Use error_propagate() instead.
>
> Cc: "Daniel P. Berrange" <berrange@redhat.com>
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
>  io/channel-websock.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/io/channel-websock.c b/io/channel-websock.c
> index 8fabadea2f..5a3badbec2 100644
> --- a/io/channel-websock.c
> +++ b/io/channel-websock.c
> @@ -856,7 +856,7 @@ static ssize_t qio_channel_websock_readv(QIOChannel *ioc,
>      ssize_t ret;
>  
>      if (wioc->io_err) {
> -        *errp = error_copy(wioc->io_err);
> +        error_propagate(errp, error_copy(wioc->io_err));
>          return -1;
>      }
>  
> @@ -902,7 +902,7 @@ static ssize_t qio_channel_websock_writev(QIOChannel *ioc,
>      ssize_t ret;
>  
>      if (wioc->io_err) {
> -        *errp = error_copy(wioc->io_err);
> +        error_propagate(errp, error_copy(wioc->io_err));
>          return -1;
>      }

The error_copy() is wasted when !errp.  Good enough for an error path.
Same for PATCH 2.

Reviewed-by: Markus Armbruster <armbru@redhat.com>

Re: [Qemu-devel] [PATCH 3/5] websock: Don't try to set *errp directly
Posted by Manos Pitsidianakis 8 years, 4 months ago
On Thu, Jun 08, 2017 at 10:39:04AM -0300, Eduardo Habkost wrote:
>Assigning directly to *errp is not valid, as errp may be NULL,
>&error_fatal, or &error_abort.  Use error_propagate() instead.
>
>Cc: "Daniel P. Berrange" <berrange@redhat.com>
>Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
>---
> io/channel-websock.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
>diff --git a/io/channel-websock.c b/io/channel-websock.c
>index 8fabadea2f..5a3badbec2 100644
>--- a/io/channel-websock.c
>+++ b/io/channel-websock.c
>@@ -856,7 +856,7 @@ static ssize_t qio_channel_websock_readv(QIOChannel *ioc,
>     ssize_t ret;
>
>     if (wioc->io_err) {
>-        *errp = error_copy(wioc->io_err);
>+        error_propagate(errp, error_copy(wioc->io_err));
>         return -1;
>     }
>
>@@ -902,7 +902,7 @@ static ssize_t qio_channel_websock_writev(QIOChannel *ioc,
>     ssize_t ret;
>
>     if (wioc->io_err) {
>-        *errp = error_copy(wioc->io_err);
>+        error_propagate(errp, error_copy(wioc->io_err));
>         return -1;
>     }
>
>-- 
>2.11.0.259.g40922b1
>
>
>

Reviewed-by: Manos Pitsidianakis <el13635@mail.ntua.gr>