From 3db7fa27027110fde92a1b6061fab434fe708e9f Mon Sep 17 00:00:00 2001 From: "kay.sievers@vrfy.org" Date: Tue, 14 Sep 2004 17:45:48 -0700 Subject: [PATCH] fix udev segfaults with bad permissions file On Tue, Sep 14, 2004 at 02:53:12PM +0200, Loleslaw wrote: > Hi, > Since I started using udev-031 on my gentoo udevstart would just segfault > (udev-030 worked). As it turned out I had a file in /etc/udev/permissions.d > with a single space in one line. I've cleaned the file and it works all > right, but I thought you could be interested. > I've traced it to function namedev_init_permissions in namedev_parse.c > I don't know C well enough to suggest a patch. Yeah, thanks for pointing that out. It only happens if the file ends with whitespace-only lines. Here is a fix and a test for udev-test.pl to cover that case. --- udev_config.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'udev_config.c') diff --git a/udev_config.c b/udev_config.c index 20b6c75d32..ba2b3d2b88 100644 --- a/udev_config.c +++ b/udev_config.c @@ -161,15 +161,13 @@ static int parse_config_file(void) continue; } - /* empty line? */ - if (bufline[0] == '\0' || bufline[0] == '\n') - continue; - /* eat the whitespace */ - while (isspace(bufline[0])) { + while ((count > 0) && isspace(bufline[0])) { bufline++; count--; } + if (count == 0) + continue; /* see if this is a comment */ if (bufline[0] == COMMENT_CHARACTER) -- cgit v1.2.3-54-g00ecf