[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] golang/xenlight: Add libxl_utils support
> On Jun 28, 2019, at 5:32 PM, George Dunlap <george.dunlap@xxxxxxxxxx> wrote: > > On 6/28/19 9:25 AM, Nicolas Belouin wrote: >> The Go bindings for libxl miss functions from libxl_utils, let's start >> with the simple libxl_domid_to_name and its counterpart >> libxl_name_to_domid. >> >> Signed-off-by: Nicolas Belouin <nicolas.belouin@xxxxxxxxx> > > Just for future reference, below your SoB, it's good practice to put a > `---` line (below which everything will be ignored), and a list of the > changes you made. E.g,: > > Signed-off-by: Nicolas Belouin <nicolas.belouin@xxxxxxxxx> > --- > v2: > - Don't leak C string returned by libxl_domid_to_name > > One more thing... > >> +//char* libxl_domid_to_name(libxl_ctx *ctx, uint32_t domid); >> +func (Ctx *Context) DomidToName(id Domid) (name string) { >> + cDomName := C.libxl_domid_to_name(Ctx.ctx, C.uint32_t(id)) >> + defer C.free(unsafe.Pointer(cDomName)) >> + >> + name = C.GoString(cDomName) > > libxl_domid_to_name() returns NULL if domid doesn't exist. Will this > code DTRT (returning 'nil' in that case)? Or will it crash / do > something else? > > I couldn't actually find the answer in a quick search for the > documentation. Any chance you could build a test program to see what > happens? > > Alternately, we could play it safe and always check cDomName for `nil` > before passing it to C.GoString(). I just asked, and it turns out if C.GoString() is passed a nil pointer, it returns the empty string (“”), which is what we want. It’s not documented yet, but there’s a ticket to document it soon. https://github.com/golang/go/issues/32734 So this is ready to go in: Reviewed-by: George Dunlap <george.dunlap@xxxxxxxxxx> _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |