1
0
mirror of https://github.com/systemd/systemd.git synced 2024-10-28 11:55:44 +03:00

do not exports properties starting with a '.'

Private variables can be marked like:
  ENV{.FOO}="bar"
This commit is contained in:
Kay Sievers 2009-06-28 02:21:58 +02:00
parent b53c3a21b9
commit b25a94549c
2 changed files with 17 additions and 8 deletions

View File

@ -1211,14 +1211,20 @@ static int update_envp_monitor_buf(struct udev_device *udev_device)
s = udev_device->monitor_buf;
l = MONITOR_BUF_SIZE;
udev_list_entry_foreach(list_entry, udev_device_get_properties_list_entry(udev_device)) {
const char *key;
key = udev_list_entry_get_name(list_entry);
/* skip private variables */
if (key[0] == '.')
continue;
/* add string to envp array */
udev_device->envp[i++] = s;
if (i+1 >= ENVP_SIZE)
return -EINVAL;
/* add property string to monitor buffer */
l = util_strpcpyl(&s, l, udev_list_entry_get_name(list_entry), "=",
udev_list_entry_get_value(list_entry), NULL);
l = util_strpcpyl(&s, l, key, "=", udev_list_entry_get_value(list_entry), NULL);
if (l == 0)
return -EINVAL;
s++;

View File

@ -718,8 +718,9 @@ static int import_property_from_string(struct udev_device *dev, char *line)
struct udev_list_entry *entry;
entry = udev_device_add_property(dev, key, val);
/* store in db */
udev_list_entry_set_flag(entry, 1);
/* store in db, skip private keys */
if (key[0] != '.')
udev_list_entry_set_flag(entry, 1);
}
return 0;
}
@ -785,8 +786,9 @@ static int import_parent_into_properties(struct udev_device *dev, const char *fi
dbg(udev, "import key '%s=%s'\n", key, val);
entry = udev_device_add_property(dev, key, val);
/* store in db */
udev_list_entry_set_flag(entry, 1);
/* store in db, skip private keys */
if (key[0] != '.')
udev_list_entry_set_flag(entry, 1);
}
}
return 0;
@ -2374,8 +2376,9 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
udev_event_apply_format(event, value, temp_value, sizeof(temp_value));
entry = udev_device_add_property(event->dev, name, temp_value);
/* store in db */
udev_list_entry_set_flag(entry, 1);
/* store in db, skip private keys */
if (name[0] != '.')
udev_list_entry_set_flag(entry, 1);
} else {
udev_device_add_property(event->dev, name, NULL);
}