Eric Blake wrote: > On 03/30/2010 10:20 AM, Matthias Bolte wrote: >> +/** >> + * virParseVersionString: >> + * @str: const char pointer to the version string >> + * @version: unsigned long pointer to output the version number >> + * >> + * Parse an unsigned version number from a version string. Expecting >> + * 'major.minor.micro' format, ignoring an optional suffix. >> + * >> + * The major, minor and micro numbers are encoded into a single version number: >> + * >> + * 1000000 * major + 1000 * minor + micro >> + * >> + * Returns the 0 for success, -1 for error. >> + */ >> +int >> +virParseVersionString(const char *str, unsigned long *version) >> +{ >> + unsigned int major, minor, micro; >> + char *tmp = (char *)str; >> + >> + if (virStrToLong_ui(tmp, &tmp, 10, &major) < 0 || tmp == NULL || > > Another instance (2 times) where the tmp==NULL check is spurious. But I > didn't see anything else wrong with this patch. > >> - if (sscanf(version, "%ld.%ld.%ld", &major, &minor, &release) != 3) { >> - xenapiSessionErrorHandler(conn, VIR_ERR_INTERNAL_ERROR, "Couldn't get version info"); >> - xen_string_string_map_free(result); >> - VIR_FREE(version); >> - return -1; >> - } >> - *hvVer = major * 1000000 + minor * 1000 + release; >> - VIR_FREE(version); >> + if (virParseVersionString(version, hvVer) < 0) >> + xenapiSessionErrorHandler(conn, VIR_ERR_INTERNAL_ERROR, >> + "Couldn't parse version info"); > > Not introduced by your patch, but should we be translating this error > message? Yes, definitely. Good catch. I added it to the list here: diff --git a/cfg.mk b/cfg.mk index 9b8ee00..45da56a 100644 --- a/cfg.mk +++ b/cfg.mk @@ -215,6 +215,7 @@ msg_gen_function += virXenInotifyError msg_gen_function += virXenStoreError msg_gen_function += virXendError msg_gen_function += vshCloseLogFile +msg_gen_function += xenapiSessionErrorHandler msg_gen_function += xenUnifiedError msg_gen_function += xenXMError Then ran "make syntax-check" and get 53 new violations. BTW, I'm seeing a lot of these, too: nwfilter/nwfilter_ebiptables_driver.c:193: warning: format not a string literal and no format arguments [-Wformat-security] nwfilter/nwfilter_ebiptables_driver.c:204: warning: format not a string literal and no format arguments [-Wformat-security] nwfilter/nwfilter_ebiptables_dr... -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list