mirror of
https://github.com/systemd/systemd.git
synced 2024-11-05 23:51:28 +03:00
device: don't allow definiing additional aliases via SYSTEMD_NAMES
This commit is contained in:
parent
8e2f43b376
commit
0d9068141e
24
device.c
24
device.c
@ -155,7 +155,7 @@ static int device_find_escape_name(Manager *m, const char *dn, Unit **_u) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int device_process_new_device(Manager *m, struct udev_device *dev, bool update_state) {
|
static int device_process_new_device(Manager *m, struct udev_device *dev, bool update_state) {
|
||||||
const char *dn, *names, *wants, *sysfs, *expose, *model;
|
const char *dn, *wants, *sysfs, *expose, *model;
|
||||||
Unit *u = NULL;
|
Unit *u = NULL;
|
||||||
int r;
|
int r;
|
||||||
char *w, *state;
|
char *w, *state;
|
||||||
@ -182,7 +182,6 @@ static int device_process_new_device(Manager *m, struct udev_device *dev, bool u
|
|||||||
|
|
||||||
/* Check whether this entry is even relevant for us. */
|
/* Check whether this entry is even relevant for us. */
|
||||||
dn = udev_device_get_devnode(dev);
|
dn = udev_device_get_devnode(dev);
|
||||||
names = udev_device_get_property_value(dev, "SYSTEMD_NAMES");
|
|
||||||
wants = udev_device_get_property_value(dev, "SYSTEMD_WANTS");
|
wants = udev_device_get_property_value(dev, "SYSTEMD_WANTS");
|
||||||
|
|
||||||
if ((r = device_find_escape_name(m, sysfs, &u)) < 0)
|
if ((r = device_find_escape_name(m, sysfs, &u)) < 0)
|
||||||
@ -247,27 +246,6 @@ static int device_process_new_device(Manager *m, struct udev_device *dev, bool u
|
|||||||
if ((r = unit_set_description(u, dn)) < 0)
|
if ((r = unit_set_description(u, dn)) < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
/* We don't remove names that are gone. But that should be
|
|
||||||
* fine and should probably be fixed only on a configuration
|
|
||||||
* refresh. */
|
|
||||||
|
|
||||||
if (names) {
|
|
||||||
FOREACH_WORD(w, l, names, state) {
|
|
||||||
char *e;
|
|
||||||
|
|
||||||
if (!(e = strndup(w, l))) {
|
|
||||||
r = -ENOMEM;
|
|
||||||
goto fail;
|
|
||||||
}
|
|
||||||
|
|
||||||
r = unit_add_name(u, e);
|
|
||||||
free(e);
|
|
||||||
|
|
||||||
if (r < 0 && r != -EEXIST)
|
|
||||||
goto fail;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (wants) {
|
if (wants) {
|
||||||
FOREACH_WORD(w, l, wants, state) {
|
FOREACH_WORD(w, l, wants, state) {
|
||||||
char *e;
|
char *e;
|
||||||
|
Loading…
Reference in New Issue
Block a user