mirror of
https://github.com/systemd/systemd.git
synced 2025-01-25 10:04:04 +03:00
udev: rules - print the first invalid character
The current code would print the character following the first invalid character. Given an udev rules-file without a trailing newline we would otherwise print garbage: invalid key/value pair in file /usr/lib/udev/rules.d/40-usb-media-players.rules on line 26, starting at character 25 ('m') This is now changed to print invalid key/value pair in file /usr/lib/udev/rules.d/40-usb-media-players.rules on line 26, starting at character 25 ('') (still not very good as printing \0 just gives the empty string)
This commit is contained in:
parent
84198c1892
commit
6501b52d35
@ -1068,13 +1068,13 @@ static int add_rule(struct udev_rules *rules, char *line,
|
||||
/* If we aren't at the end of the line, this is a parsing error.
|
||||
* Make a best effort to describe where the problem is. */
|
||||
if (*linepos != '\n') {
|
||||
char buf[2] = {linepos[1]};
|
||||
char buf[2] = {*linepos};
|
||||
_cleanup_free_ char *tmp;
|
||||
|
||||
tmp = cescape(buf);
|
||||
log_error("invalid key/value pair in file %s on line %u, starting at character %tu ('%s')",
|
||||
filename, lineno, linepos - line + 1, tmp);
|
||||
if (linepos[1] == '#')
|
||||
if (*linepos == '#')
|
||||
log_error("hint: comments can only start at beginning of line");
|
||||
}
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user