]> xenbits.xensource.com Git - people/royger/xen.git/commitdiff
tools/blktap2: Fix use of uninitialised variable in _tap_list_join3()
authorAndrew Cooper <andrew.cooper3@citrix.com>
Wed, 27 Apr 2016 12:31:05 +0000 (13:31 +0100)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Wed, 27 Apr 2016 19:31:34 +0000 (20:31 +0100)
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.cooper3@citrix.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
Release-acked-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Doug Goldstein <cardoe@cardoe.com>
tools/blktap2/control/tap-ctl-list.c

index c91f6f48d3564bda4ba40e1a3286d4e9a09df379..f8d49c33428c1399770d5d9ec1f3e71cd433a035 100644 (file)
@@ -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;
        }