[Libguestfs] [PATCH] osinfo: parse also single-digit version numbers
Richard W.M. Jones
rjones at redhat.com
Tue Jul 26 10:16:52 UTC 2016
On Mon, Jul 25, 2016 at 06:19:03PM +0200, Pino Toscano wrote:
> Switch to guestfs_int_version_from_x_y_or_x to parse version numbers --
> although, restrict the parsing to what could look like a valid version
> number, to discard quickly version strings like "unknown".
>
> This makes sure that Debian, Fedora, Mageia, and SLED ISOs have the
> right version number.
> ---
> src/osinfo.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/src/osinfo.c b/src/osinfo.c
> index 0caacfa..907580e 100644
> --- a/src/osinfo.c
> +++ b/src/osinfo.c
> @@ -62,6 +62,7 @@
>
> #include "ignore-value.h"
> #include "glthread/lock.h"
> +#include "c-ctype.h"
>
> #include "guestfs.h"
> #include "guestfs-internal.h"
> @@ -548,9 +549,12 @@ parse_version (guestfs_h *g, xmlNodePtr node, struct osinfo *osinfo)
> CLEANUP_FREE char *content = NULL;
>
> content = (char *) xmlNodeGetContent (node);
> - if (content) {
> + /* We parse either "X.Y" or "X" as version strings, so try to parse
> + * only if the first character is a digit.
> + */
> + if (content && c_isdigit (content[0])) {
> struct version version;
> - int res = guestfs_int_version_from_x_y (g, &version, content);
> + int res = guestfs_int_version_from_x_y_or_x (g, &version, content);
This is 'const int' since I pushed some const correctness
changes this morning.
> if (res < 0)
> return -1;
> else if (res > 0) {
ACK.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW
More information about the Libguestfs
mailing list