[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] libxl: fix handling returns in libxl_get_version_info()
Avoid handling issue of the return value of xc_version() in many cases. Coverity ID 1351217 Signed-off-by: Harmandeep Kaur <write.harmandeep@xxxxxxxxx> --- tools/libxl/libxl.c | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index 2d18b8d..a939e51 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -5267,42 +5267,63 @@ const libxl_version_info* libxl_get_version_info(libxl_ctx *ctx) xen_platform_parameters_t p_parms; xen_commandline_t xen_commandline; } u; + int rc; long xen_version; libxl_version_info *info = &ctx->version_info; if (info->xen_version_extra != NULL) goto out; - xen_version = xc_version(ctx->xch, XENVER_version, NULL); + rc = xen_version = xc_version(ctx->xch, XENVER_version, NULL); + if ( rc < 0 ) + goto out; + info->xen_version_major = xen_version >> 16; info->xen_version_minor = xen_version & 0xFF; + rc = xc_version(ctx->xch, XENVER_extraversion, &u.xen_extra); + if ( rc < 0 ) + goto out; - xc_version(ctx->xch, XENVER_extraversion, &u.xen_extra); info->xen_version_extra = libxl__strdup(NOGC, u.xen_extra); + rc = xc_version(ctx->xch, XENVER_compile_info, &u.xen_cc); + if ( rc < 0 ) + goto out; - xc_version(ctx->xch, XENVER_compile_info, &u.xen_cc); info->compiler = libxl__strdup(NOGC, u.xen_cc.compiler); info->compile_by = libxl__strdup(NOGC, u.xen_cc.compile_by); info->compile_domain = libxl__strdup(NOGC, u.xen_cc.compile_domain); info->compile_date = libxl__strdup(NOGC, u.xen_cc.compile_date); + rc = xc_version(ctx->xch, XENVER_capabilities, &u.xen_caps); + if ( rc < 0 ) + goto out; - xc_version(ctx->xch, XENVER_capabilities, &u.xen_caps); info->capabilities = libxl__strdup(NOGC, u.xen_caps); + rc = xc_version(ctx->xch, XENVER_changeset, &u.xen_chgset); + if ( rc < 0 ) + goto out; - xc_version(ctx->xch, XENVER_changeset, &u.xen_chgset); info->changeset = libxl__strdup(NOGC, u.xen_chgset); + rc = xc_version(ctx->xch, XENVER_platform_parameters, &u.p_parms); + if ( rc < 0 ) + goto out; - xc_version(ctx->xch, XENVER_platform_parameters, &u.p_parms); info->virt_start = u.p_parms.virt_start; + rc = info->pagesize = xc_version(ctx->xch, XENVER_pagesize, NULL); + if ( rc < 0 ) + goto out; - info->pagesize = xc_version(ctx->xch, XENVER_pagesize, NULL); + rc = xc_version(ctx->xch, XENVER_commandline, &u.xen_commandline); + if ( rc < 0 ) + goto out; - xc_version(ctx->xch, XENVER_commandline, &u.xen_commandline); info->commandline = libxl__strdup(NOGC, u.xen_commandline); out: GC_FREE; - return info; + if ( rc < 0 ) + return NULL; + else + return info; } libxl_vcpuinfo *libxl_list_vcpu(libxl_ctx *ctx, uint32_t domid, -- 2.5.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |