From: greg@kroah.com Date: Thu, 25 Mar 2004 07:31:04 +0000 (-0800) Subject: [PATCH] actually have udev run files ending in .dev in the /etc/dev.d/ directory... X-Git-Tag: 023~2 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=1f5caf43c88a247d36d1c8362009cda59f3ac729 [PATCH] actually have udev run files ending in .dev in the /etc/dev.d/ directory as documented. --- diff --git a/dev_d.c b/dev_d.c index 36bee33bd..9412c3da7 100644 --- a/dev_d.c +++ b/dev_d.c @@ -36,6 +36,7 @@ #include "logging.h" #define HOTPLUGDIR "/etc/dev.d" +#define SUFFIX ".dev" #define COMMENT_PREFIX '#' static void run_program(char *name) @@ -64,7 +65,8 @@ static void execute_dir (char *dirname) { DIR *directory; struct dirent *entry; - char filename[256]; + char filename[NAME_SIZE]; + int name_len; dbg("opening %s", dirname); directory = opendir(dirname); @@ -80,6 +82,13 @@ static void execute_dir (char *dirname) (entry->d_name[0] == COMMENT_PREFIX)) continue; + /* Nor do we run files that do not end in ".dev" */ + name_len = strlen(entry->d_name); + if (name_len < strlen(SUFFIX)) + continue; + if (strcmp(&entry->d_name[name_len - sizeof (SUFFIX) + 1], SUFFIX) != 0) + continue; + /* FIXME - need to use file_list_insert() here to run these in sorted order... */ snprintf(filename, sizeof(filename), "%s%s", dirname, entry->d_name); filename[sizeof(filename)-1] = '\0';