mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
vmware: make version parsing more robust
Since commit d69415d4
, vmware version is parsed from both stdout and
stderr. This patch makes version parsing work even if there is garbage
(libvirt debug messages for example) in the command output.
Add test data for this case.
This commit is contained in:
parent
3c43b6a7b2
commit
775bb9b15f
@ -1,7 +1,7 @@
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/*
|
||||
* Copyright (C) 2011-2014 Red Hat, Inc.
|
||||
* Copyright 2010, diateam (www.diateam.net)
|
||||
* Copyright (C) 2010-2014, diateam (www.diateam.net)
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
@ -241,7 +241,13 @@ vmwareParseVersionStr(int type, const char *verbuf, unsigned long *version)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((tmp = STRSKIP(verbuf, pattern)) == NULL) {
|
||||
if ((tmp = strstr(verbuf, pattern)) == NULL) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("cannot find version pattern \"%s\""), pattern);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((tmp = STRSKIP(tmp, pattern)) == NULL) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("failed to parse %sversion"), pattern);
|
||||
return -1;
|
||||
|
3
tests/vmwareverdata/workstation-7.0.0-with-garbage.txt
Normal file
3
tests/vmwareverdata/workstation-7.0.0-with-garbage.txt
Normal file
@ -0,0 +1,3 @@
|
||||
garbage line
|
||||
VMware Workstation 7.0.0 build-203739 Release
|
||||
garbage line
|
@ -88,6 +88,7 @@ mymain(void)
|
||||
} while (0)
|
||||
|
||||
DO_TEST("ws", "workstation-7.0.0", 7000000);
|
||||
DO_TEST("ws", "workstation-7.0.0-with-garbage", 7000000);
|
||||
DO_TEST("fusion", "fusion-5.0.3", 5000003);
|
||||
|
||||
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||
|
Loading…
Reference in New Issue
Block a user