Changeset
io/channel-websock.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Test passed: s390x

loading

Test passed: checkpatch

loading

Test passed: docker

loading

Git apply log
Switched to a new branch '20171012132546.1741-1-berrange@redhat.com'
Applying: io: fix mem leak in websock error path
To https://github.com/patchew-project/qemu
 + 3756435bab...50f25660c1 patchew/20171012132546.1741-1-berrange@redhat.com -> patchew/20171012132546.1741-1-berrange@redhat.com (forced update)
[Qemu-devel] [PATCH v2] io: fix mem leak in websock error path
Posted by Daniel P. Berrange, 1 week ago
Coverity pointed out the 'date' is not free()d in the error
path

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
 io/channel-websock.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/io/channel-websock.c b/io/channel-websock.c
index aa35ef3274..df2c3a9f99 100644
--- a/io/channel-websock.c
+++ b/io/channel-websock.c
@@ -341,7 +341,7 @@ static void qio_channel_websock_handshake_send_res_ok(QIOChannelWebsock *ioc,
     char combined_key[QIO_CHANNEL_WEBSOCK_CLIENT_KEY_LEN +
                       QIO_CHANNEL_WEBSOCK_GUID_LEN + 1];
     char *accept = NULL;
-    char *date = qio_channel_websock_date_str();
+    char *date = NULL;
 
     g_strlcpy(combined_key, key, QIO_CHANNEL_WEBSOCK_CLIENT_KEY_LEN + 1);
     g_strlcat(combined_key, QIO_CHANNEL_WEBSOCK_GUID,
@@ -360,6 +360,7 @@ static void qio_channel_websock_handshake_send_res_ok(QIOChannelWebsock *ioc,
         return;
     }
 
+    date = qio_channel_websock_date_str();
     qio_channel_websock_handshake_send_res(
         ioc, QIO_CHANNEL_WEBSOCK_HANDSHAKE_RES_OK, date, accept);
 
-- 
2.13.5


Re: [Qemu-devel] [PATCH v2] io: fix mem leak in websock error path
Posted by Eric Blake, 1 week ago
On 10/12/2017 08:25 AM, Daniel P. Berrange wrote:
> Coverity pointed out the 'date' is not free()d in the error
> path
> 
> Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
> ---
>  io/channel-websock.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

Reviewed-by: Eric Blake <eblake@redhat.com>

> 
> diff --git a/io/channel-websock.c b/io/channel-websock.c
> index aa35ef3274..df2c3a9f99 100644
> --- a/io/channel-websock.c
> +++ b/io/channel-websock.c
> @@ -341,7 +341,7 @@ static void qio_channel_websock_handshake_send_res_ok(QIOChannelWebsock *ioc,
>      char combined_key[QIO_CHANNEL_WEBSOCK_CLIENT_KEY_LEN +
>                        QIO_CHANNEL_WEBSOCK_GUID_LEN + 1];
>      char *accept = NULL;
> -    char *date = qio_channel_websock_date_str();
> +    char *date = NULL;
>  
>      g_strlcpy(combined_key, key, QIO_CHANNEL_WEBSOCK_CLIENT_KEY_LEN + 1);
>      g_strlcat(combined_key, QIO_CHANNEL_WEBSOCK_GUID,
> @@ -360,6 +360,7 @@ static void qio_channel_websock_handshake_send_res_ok(QIOChannelWebsock *ioc,
>          return;
>      }
>  
> +    date = qio_channel_websock_date_str();
>      qio_channel_websock_handshake_send_res(
>          ioc, QIO_CHANNEL_WEBSOCK_HANDSHAKE_RES_OK, date, accept);
>  
> 

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org