[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 13/28] libxl: only free cputopology if it was allocated in libxl_{cpu, node}map_to_{node, cpu}map
On mer, 2013-09-18 at 15:37 +1200, Matthew Daley wrote: > Coverity-ID: 1055294 > Coverity-ID: 1055295 > Ok, forgive my coverity ignorance and sorry if I should know this already, but I do I use these IDs to get some useful information? > Signed-off-by: Matthew Daley <mattjd@xxxxxxxxx> > --- > tools/libxl/libxl_utils.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/tools/libxl/libxl_utils.c b/tools/libxl/libxl_utils.c > index 4309e5e..8e567a8 100644 > --- a/tools/libxl/libxl_utils.c > +++ b/tools/libxl/libxl_utils.c > @@ -664,7 +664,8 @@ int libxl_nodemap_to_cpumap(libxl_ctx *ctx, > libxl_bitmap_set(cpumap, i); > } > out: > - libxl_cputopology_list_free(tinfo, nr_cpus); > + if (tinfo != NULL) > + libxl_cputopology_list_free(tinfo, nr_cpus); > return rc; > } I was about to reply exactly as in the other e-mail (the reply to 12/28), but in this case I think there is some small rom for issues, since nr_cpus is not initialized. In fact, libxl_nodemap_to_cpumap() looks like this: 648 it libxl_nodemap_to_cpumap(libxl_ctx *ctx, 649 const libxl_bitmap *nodemap, 650 libxl_bitmap *cpumap) 651 { 652 libxl_cputopology *tinfo = NULL; 653 int nr_cpus, i, rc = 0; 654 655 tinfo = libxl_get_cpu_topology(ctx, &nr_cpus); 656 if (tinfo == NULL) { 657 rc = ERROR_FAIL; 658 goto out; 659 } 660 661 libxl_bitmap_set_none(cpumap); 662 for (i = 0; i < nr_cpus; i++) { 663 if (libxl_bitmap_test(nodemap, tinfo[i].node)) 664 libxl_bitmap_set(cpumap, i); 665 } 666 out: 667 libxl_cputopology_list_free(tinfo, nr_cpus); 668 return rc; 669 } Still, I think I'd like this fixed by doing something like this: 653 int nr_cpus = 0, i, rc = 0; rather than with what this patch does, for the same reasons already explained in the other e-mails. I'm up for sending such patch myself, but that will be in a while, as right now I'm away from my workstation. Is that fine with you? > > @@ -685,7 +686,8 @@ int libxl_cpumap_to_nodemap(libxl_ctx *ctx, > libxl_for_each_set_bit(i, *cpumap) > libxl_bitmap_set(nodemap, tinfo[i].node); > out: > - libxl_cputopology_list_free(tinfo, nr_cpus); > + if (tinfo != NULL) > + libxl_cputopology_list_free(tinfo, nr_cpus); > return rc; > } > And the same applies here, of course. Is that fine with you guys? Regards, Dario -- <<This happens because I choose it to happen!>> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) Attachment:
signature.asc _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |