summaryrefslogtreecommitdiff
path: root/udev_config.c
diff options
context:
space:
mode:
authorkay.sievers@vrfy.org <kay.sievers@vrfy.org>2005-03-27 00:15:07 +0100
committerGreg KH <gregkh@suse.de>2005-04-26 23:54:59 -0700
commit18614ab25d4208749a3d85ced33acc6679c60fce (patch)
tree4c91a9edc1bb542e9028216046f665c8fde16c60 /udev_config.c
parent61b1b7069f7a640e1952dce3c6de97034ef7c4fe (diff)
[PATCH] remove untrusted chars read from sysfs-values or returned by PROGRAM
Better remove characters that are useless in a device node name. It may be a security risk to pass any character read from e.g. a sysfs attribute to a shell script we execute later. Prevent the modification of the libsysfs attribute value cache. Clear PROGRAM result if the execution encountered an error.
Diffstat (limited to 'udev_config.c')
-rw-r--r--udev_config.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/udev_config.c b/udev_config.c
index 54eedb980a..7d6bb77e5b 100644
--- a/udev_config.c
+++ b/udev_config.c
@@ -182,19 +182,19 @@ static int parse_config_file(void)
if (strcasecmp(variable, "udev_root") == 0) {
strlcpy(udev_root, value, sizeof(udev_root));
- no_trailing_slash(udev_root);
+ remove_trailing_char(udev_root, '/');
continue;
}
if (strcasecmp(variable, "udev_db") == 0) {
strlcpy(udev_db_path, value, sizeof(udev_db_path));
- no_trailing_slash(udev_db_path);
+ remove_trailing_char(udev_db_path, '/');
continue;
}
if (strcasecmp(variable, "udev_rules") == 0) {
strlcpy(udev_rules_filename, value, sizeof(udev_rules_filename));
- no_trailing_slash(udev_rules_filename);
+ remove_trailing_char(udev_rules_filename, '/');
continue;
}
@@ -232,7 +232,7 @@ void udev_init_config(void)
env = getenv("UDEV_CONFIG_FILE");
if (env) {
strlcpy(udev_config_filename, env, sizeof(udev_config_filename));
- no_trailing_slash(udev_config_filename);
+ remove_trailing_char(udev_config_filename, '/');
}
parse_config_file();