From 557107500b22d4a5ba7d1b09f5f516512dfca67b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20Tomko?= Date: Tue, 14 Apr 2015 12:30:34 +0200 Subject: [PATCH] Strip control characters from sysfs attributes Including them in the XML makes them unparsable. https://bugzilla.redhat.com/show_bug.cgi?id=1184131 --- src/node_device/node_device_udev.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c index 1025e802d1..846f570146 100644 --- a/src/node_device/node_device_udev.c +++ b/src/node_device/node_device_udev.c @@ -191,7 +191,9 @@ static int udevGetUintProperty(struct udev_device *udev_device, /* This function allocates memory from the heap for the property - * value. That memory must be later freed by some other code. */ + * value. That memory must be later freed by some other code. + * Any control characters that cannot be printed in the XML are stripped + * from the string */ static int udevGetDeviceSysfsAttr(struct udev_device *udev_device, const char *attr_name, char **attr_value) @@ -233,6 +235,8 @@ static int udevGetStringSysfsAttr(struct udev_device *udev_device, ret = udevGetDeviceSysfsAttr(udev_device, attr_name, &tmp); + virStringStripControlChars(tmp); + if (tmp != NULL && (STREQ(tmp, ""))) { VIR_FREE(tmp); tmp = NULL; -- GitLab