[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [Patch v3 3/4] tools/libxl: Fix libxl__device_nic_from_xs_be()
Andrew Cooper writes ("[Xen-devel] [Patch v3 3/4] tools/libxl: Fix libxl__device_nic_from_xs_be()"): > diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c > - tmp = xs_read(ctx->xsh, XBT_NULL, > - libxl__sprintf(gc, "%s/handle", be_path), &len); > - if ( tmp ) > + rc = libxl__xs_read_checked(gc, XBT_NULL, > + libxl__sprintf(gc, "%s/handle", be_path), > + &tmp); > + > + if ((rc == 0) && strlen(tmp)) Nacked-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> (for the benefit of Ian C.) This is not correct. See the doc comment for libxl__xs_read_checked: /* On success, *result_out came from the gc. * On error, *result_out is undefined. * ENOENT counts as success but sets *result_out=0 */ int libxl__xs_read_checked(libxl__gc *gc, xs_transaction_t t, const char *path, const char **result_out); So the correct pattern is: rc = libxl__xs_read_checked(gc, XBT_NULL, blah blah blah, &tmp); if (rc) goto out; if (tmp) { use tmp; } else { the path doesn't exist, do the other thing; } I don't think there should be any need to check for empty strings written to xenstore here ? The old code doesn't. Please someone tell me there isn't. Thanks, Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |