# HG changeset patch
# User Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
# Date 1278606138 -3600
# Node ID 49394a999fa127f01bfa4e4bd8893adfa42dde8a
# Parent 29e5451510780220ed7bd65417feb0f6adad6942
tools/libxl/xl: fix for short BDF (without domain specified)
Check that BDF have been parsed correctly. Before this fix, BDF could
be parsed incorrectly if user omitted the domain.
Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Contributed-by: Sergey Tovpeko <tsv.devel@xxxxxxxxx>
Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
---
tools/libxl/xl_cmdimpl.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff -r 29e545151078 -r 49394a999fa1 tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c Thu Jul 08 16:50:34 2010 +0100
+++ b/tools/libxl/xl_cmdimpl.c Thu Jul 08 17:22:18 2010 +0100
@@ -833,9 +833,12 @@ skip_vfb:
p = strtok(buf2, ",");
if (!p)
goto skip_pci;
- if (!sscanf(p, PCI_BDF_VDEVFN, &domain, &bus, &dev, &func,
&vdevfn)) {
- sscanf(p, "%02x:%02x.%01x@%02x", &bus, &dev, &func, &vdevfn);
+ if (sscanf(p, PCI_BDF_VDEVFN, &domain, &bus, &dev, &func, &vdevfn)
< 4) {
domain = 0;
+ if (sscanf(p, "%02x:%02x.%01x@%02x", &bus, &dev, &func,
&vdevfn) < 3) {
+ fprintf(stderr,"xl: Unable to parse pci bdf (%s)\n", p);
+ goto skip_pci;
+ }
}
libxl_device_pci_init(*pcidevs + *num_pcidevs, domain, bus, dev,
func, vdevfn);
(*pcidevs)[*num_pcidevs].msitranslate = pci_msitranslate;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|