提交 775bb9b1 编写于 作者: J Jean-Baptiste Rouault 提交者: Ján Tomko

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.
上级 3c43b6a7
/*---------------------------------------------------------------------------*/
/*
* 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;
......
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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册