[systemd-devel] [PATCH] udevadm hwdb: discard extra leading whitespaces in hwdb
Peter Hutterer
peter.hutterer at who-t.net
Wed Nov 26 21:19:44 PST 2014
Currently a property in the form of
FOO=bar
is stored as " FOO=bar", i.e. the property name contains a leading space.
That's quite hard to spot.
This patch discards all extra whitespaces but the first one which is required
by libudev's hwdb_add_property.
---
src/udev/udevadm-hwdb.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/udev/udevadm-hwdb.c b/src/udev/udevadm-hwdb.c
index 3ca755e..dcc6e0f 100644
--- a/src/udev/udevadm-hwdb.c
+++ b/src/udev/udevadm-hwdb.c
@@ -428,6 +428,10 @@ static int insert_data(struct trie *trie, struct udev_list *match_list,
value[0] = '\0';
value++;
+ /* libudev requires properties to start with a space */
+ while(line[0] != '\0' && isblank(line[1]))
+ line++;
+
if (line[0] == '\0' || value[0] == '\0') {
log_error("Error, empty key or value '%s' in '%s':", line, filename);
return -EINVAL;
--
2.1.0
More information about the systemd-devel
mailing list