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
This commit is contained in:
Peter Hutterer 2014-11-27 15:19:44 +10:00 committed by Zbigniew Jędrzejewski-Szmek
parent e6a7b9f455
commit 36afca67b6

View file

@ -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;