From: Peter Hutterer Date: Thu, 27 Nov 2014 05:19:44 +0000 (+1000) Subject: udevadm hwdb: discard extra leading whitespaces in hwdb X-Git-Tag: v218~220 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;ds=inline;h=36afca67b67984520c5c9a6ce14af51a68c7c8cf;p=elogind.git udevadm hwdb: discard extra leading whitespaces in hwdb 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. [zj: modify the check a bit] https://bugs.freedesktop.org/show_bug.cgi?id=82311 --- diff --git a/src/udev/udevadm-hwdb.c b/src/udev/udevadm-hwdb.c index fa137c1cc..a5870d1ce 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 (isblank(line[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;