43 lines
1.4 KiB
Diff
43 lines
1.4 KiB
Diff
|
bug #239173
|
||
|
bug #242953
|
||
|
|
||
|
Index: xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/xenstore.c
|
||
|
===================================================================
|
||
|
--- xen-4.4.0-testing.orig/tools/qemu-xen-traditional-dir-remote/xenstore.c
|
||
|
+++ xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/xenstore.c
|
||
|
@@ -447,9 +447,9 @@ void xenstore_parse_domain_config(int hv
|
||
|
{
|
||
|
char **e_danger = NULL;
|
||
|
char *buf = NULL;
|
||
|
- char *fpath = NULL, *bpath = NULL,
|
||
|
+ char *fpath = NULL, *bpath = NULL, *btype = NULL,
|
||
|
*dev = NULL, *params = NULL, *drv = NULL;
|
||
|
- int i, ret;
|
||
|
+ int i, ret, is_tap;
|
||
|
unsigned int len, num, hd_index, pci_devid = 0;
|
||
|
BlockDriverState *bs;
|
||
|
BlockDriver *format;
|
||
|
@@ -486,6 +486,14 @@ void xenstore_parse_domain_config(int hv
|
||
|
e_danger[i]);
|
||
|
if (bpath == NULL)
|
||
|
continue;
|
||
|
+ /* check to see if type is tap or not */
|
||
|
+ if (pasprintf(&buf, "%s/type", bpath) == -1)
|
||
|
+ continue;
|
||
|
+ free(btype);
|
||
|
+ btype = xs_read(xsh, XBT_NULL, buf, &len);
|
||
|
+ if (btype == NULL)
|
||
|
+ continue;
|
||
|
+ is_tap = !strncmp(btype, "tap", 3);
|
||
|
/* read the name of the device */
|
||
|
if (pasprintf(&buf, "%s/dev", bpath) == -1)
|
||
|
continue;
|
||
|
@@ -762,6 +770,7 @@ void xenstore_parse_domain_config(int hv
|
||
|
free(mode);
|
||
|
free(params);
|
||
|
free(dev);
|
||
|
+ free(btype);
|
||
|
free(bpath);
|
||
|
free(buf);
|
||
|
free(danger_buf);
|