diff mbox series

migration/rdma: Fix uninitialised rdma_return_path

Message ID 20180830173657.22939-1-dgilbert@redhat.com
State New
Headers show
Series migration/rdma: Fix uninitialised rdma_return_path | expand

Commit Message

Dr. David Alan Gilbert Aug. 30, 2018, 5:36 p.m. UTC
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>

Clang correctly errors out moaning that rdma_return_path
is used uninitialised in the earlier error paths.
Make it NULL so that the error path ignores it.

Fixes: 55cc1b5937a8e709e4c102e74b206281073aab82
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reprorted by: Cornelia Huck <cohuck@redhat.com>
---
 migration/rdma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Philippe Mathieu-Daudé Aug. 31, 2018, 12:17 a.m. UTC | #1
On 8/30/18 2:36 PM, Dr. David Alan Gilbert (git) wrote:
> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> 
> Clang correctly errors out moaning that rdma_return_path
> is used uninitialised in the earlier error paths.
> Make it NULL so that the error path ignores it.
> 
> Fixes: 55cc1b5937a8e709e4c102e74b206281073aab82
> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> Reprorted by: Cornelia Huck <cohuck@redhat.com>

"Reported-by"

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
>  migration/rdma.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/migration/rdma.c b/migration/rdma.c
> index ae07515e83..9b2e7e10aa 100644
> --- a/migration/rdma.c
> +++ b/migration/rdma.c
> @@ -4012,7 +4012,7 @@ static void rdma_accept_incoming_migration(void *opaque)
>  void rdma_start_incoming_migration(const char *host_port, Error **errp)
>  {
>      int ret;
> -    RDMAContext *rdma, *rdma_return_path;
> +    RDMAContext *rdma, *rdma_return_path = NULL;
>      Error *local_err = NULL;
>  
>      trace_rdma_start_incoming_migration();
>
Juan Quintela Aug. 31, 2018, 8:20 a.m. UTC | #2
"Dr. David Alan Gilbert (git)" <dgilbert@redhat.com> wrote:
> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
>
> Clang correctly errors out moaning that rdma_return_path
> is used uninitialised in the earlier error paths.
> Make it NULL so that the error path ignores it.
>
> Fixes: 55cc1b5937a8e709e4c102e74b206281073aab82
> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> Reprorted by: Cornelia Huck <cohuck@redhat.com>

Reviewed-by: Juan Quintela <quintela@redhat.com>

queued
Dr. David Alan Gilbert Aug. 31, 2018, 9:37 a.m. UTC | #3
* Philippe Mathieu-Daudé (f4bug@amsat.org) wrote:
> On 8/30/18 2:36 PM, Dr. David Alan Gilbert (git) wrote:
> > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> > 
> > Clang correctly errors out moaning that rdma_return_path
> > is used uninitialised in the earlier error paths.
> > Make it NULL so that the error path ignores it.
> > 
> > Fixes: 55cc1b5937a8e709e4c102e74b206281073aab82
> > Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> > Reprorted by: Cornelia Huck <cohuck@redhat.com>
> 
> "Reported-by"

Oops

> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Thanks,

Dave

> 
> > ---
> >  migration/rdma.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/migration/rdma.c b/migration/rdma.c
> > index ae07515e83..9b2e7e10aa 100644
> > --- a/migration/rdma.c
> > +++ b/migration/rdma.c
> > @@ -4012,7 +4012,7 @@ static void rdma_accept_incoming_migration(void *opaque)
> >  void rdma_start_incoming_migration(const char *host_port, Error **errp)
> >  {
> >      int ret;
> > -    RDMAContext *rdma, *rdma_return_path;
> > +    RDMAContext *rdma, *rdma_return_path = NULL;
> >      Error *local_err = NULL;
> >  
> >      trace_rdma_start_incoming_migration();
> > 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Thomas Huth Sept. 3, 2018, 7:40 a.m. UTC | #4
On 2018-08-30 19:36, Dr. David Alan Gilbert (git) wrote:
> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> 
> Clang correctly errors out moaning that rdma_return_path
> is used uninitialised in the earlier error paths.
> Make it NULL so that the error path ignores it.
> 
> Fixes: 55cc1b5937a8e709e4c102e74b206281073aab82
> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> Reprorted by: Cornelia Huck <cohuck@redhat.com>
> ---
>  migration/rdma.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/migration/rdma.c b/migration/rdma.c
> index ae07515e83..9b2e7e10aa 100644
> --- a/migration/rdma.c
> +++ b/migration/rdma.c
> @@ -4012,7 +4012,7 @@ static void rdma_accept_incoming_migration(void *opaque)
>  void rdma_start_incoming_migration(const char *host_port, Error **errp)
>  {
>      int ret;
> -    RDMAContext *rdma, *rdma_return_path;
> +    RDMAContext *rdma, *rdma_return_path = NULL;
>      Error *local_err = NULL;
>  
>      trace_rdma_start_incoming_migration();

This will silence the error from clang for sure, so:

Reviewed-by: Thomas Huth <thuth@redhat.com>

But actually, the g_free(rdma_return_path); at the end of the function
is dead code, since it will always be called with rdma_return_path ==
NULL. Maybe we should rather remove that g_free() instead?

 Thomas
Dr. David Alan Gilbert Sept. 3, 2018, 12:17 p.m. UTC | #5
* Thomas Huth (thuth@redhat.com) wrote:
> On 2018-08-30 19:36, Dr. David Alan Gilbert (git) wrote:
> > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> > 
> > Clang correctly errors out moaning that rdma_return_path
> > is used uninitialised in the earlier error paths.
> > Make it NULL so that the error path ignores it.
> > 
> > Fixes: 55cc1b5937a8e709e4c102e74b206281073aab82
> > Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> > Reprorted by: Cornelia Huck <cohuck@redhat.com>
> > ---
> >  migration/rdma.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/migration/rdma.c b/migration/rdma.c
> > index ae07515e83..9b2e7e10aa 100644
> > --- a/migration/rdma.c
> > +++ b/migration/rdma.c
> > @@ -4012,7 +4012,7 @@ static void rdma_accept_incoming_migration(void *opaque)
> >  void rdma_start_incoming_migration(const char *host_port, Error **errp)
> >  {
> >      int ret;
> > -    RDMAContext *rdma, *rdma_return_path;
> > +    RDMAContext *rdma, *rdma_return_path = NULL;
> >      Error *local_err = NULL;
> >  
> >      trace_rdma_start_incoming_migration();
> 
> This will silence the error from clang for sure, so:
> 
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> 
> But actually, the g_free(rdma_return_path); at the end of the function
> is dead code, since it will always be called with rdma_return_path ==
> NULL. Maybe we should rather remove that g_free() instead?

It's nice keeping the rdma/rdma_return_path semetric there so that if
we add other code into it the err path still cleans up.

Dave

>  Thomas
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
diff mbox series

Patch

diff --git a/migration/rdma.c b/migration/rdma.c
index ae07515e83..9b2e7e10aa 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -4012,7 +4012,7 @@  static void rdma_accept_incoming_migration(void *opaque)
 void rdma_start_incoming_migration(const char *host_port, Error **errp)
 {
     int ret;
-    RDMAContext *rdma, *rdma_return_path;
+    RDMAContext *rdma, *rdma_return_path = NULL;
     Error *local_err = NULL;
 
     trace_rdma_start_incoming_migration();