On Wed, Apr 27, 2016 at 06:01:23PM +0100, Andrew Cooper wrote:
> Clang points out:
> 
>   tap-ctl-list.c:457:28: error: variable 'entry' is uninitialized when
>   used here [-Werror,-Wuninitialized]
>           for (; *_entry != NULL; ++entry) {
>                                     ^~~~~
> 
> The content of that loop clearly was meant to iterate over _entry rather than
> entry, so is fixed to do so.  This presumably fixes a memory leak when
> tapdisks get orphed, as only the first item on the list got freed.
> 
> There is no use of entry at all.  It is referenced in a
> list_for_each_entry(tl, &tap->list, entry) construct, but this is just a
> member name, and not a reference to local scope variable of the same name.
> 
> Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com>

Acked-by: Wei Liu <wei.l...@citrix.com>

> ---
> CC: Ian Jackson <ian.jack...@eu.citrix.com>
> CC: Wei Liu <wei.l...@citrix.com>
> ---
>  tools/blktap2/control/tap-ctl-list.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/blktap2/control/tap-ctl-list.c 
> b/tools/blktap2/control/tap-ctl-list.c
> index c91f6f4..f8d49c3 100644
> --- a/tools/blktap2/control/tap-ctl-list.c
> +++ b/tools/blktap2/control/tap-ctl-list.c
> @@ -400,7 +400,7 @@ int
>  _tap_list_join3(int n_minors, int *minorv, int n_taps, struct tapdisk *tapv,
>               tap_list_t ***_list)
>  {
> -     tap_list_t **list, **_entry, *entry;
> +     tap_list_t **list, **_entry;
>       int i, _m, err;
>  
>       list = tap_ctl_alloc_list(n_minors + n_taps);
> @@ -454,7 +454,7 @@ _tap_list_join3(int n_minors, int *minorv, int n_taps, 
> struct tapdisk *tapv,
>       }
>  
>       /* free extraneous list entries */
> -     for (; *_entry != NULL; ++entry) {
> +     for (; *_entry != NULL; ++_entry) {
>               free_list(*_entry);
>               *_entry = NULL;
>       }
> -- 
> 2.1.4
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to