mirror of
https://github.com/AuxXxilium/eudev.git
synced 2024-12-26 05:35:21 +07:00
unit: when loading symlinked template units, properly add all names on the way to the unit
This commit is contained in:
parent
21308c654d
commit
15e11d81e7
@ -1661,13 +1661,16 @@ static int open_follow(char **filename, FILE **_f, Set *names, char **_final) {
|
||||
* unit name. */
|
||||
name = file_name_from_path(*filename);
|
||||
|
||||
if (unit_name_is_valid(name, false)) {
|
||||
if (!(id = set_get(names, name))) {
|
||||
if (unit_name_is_valid(name, true)) {
|
||||
|
||||
if (!(id = strdup(name)))
|
||||
id = set_get(names, name);
|
||||
if (!id) {
|
||||
id = strdup(name);
|
||||
if (!id)
|
||||
return -ENOMEM;
|
||||
|
||||
if ((r = set_put(names, id)) < 0) {
|
||||
r = set_put(names, id);
|
||||
if (r < 0) {
|
||||
free(id);
|
||||
return r;
|
||||
}
|
||||
|
@ -37,6 +37,7 @@
|
||||
* recreate VTs when disallocated
|
||||
* spawn user systemd
|
||||
* direct client API
|
||||
* add configuration file
|
||||
* D-Bus method: AttachDevices(seat, devices[]);
|
||||
* D-Bus method: SetLinger(user, bool b);
|
||||
*
|
||||
@ -124,8 +125,6 @@ void manager_gc(Manager *m);
|
||||
|
||||
int manager_get_idle_hint(Manager *m, dual_timestamp *t);
|
||||
|
||||
bool x11_display_is_local(const char *display);
|
||||
|
||||
extern const DBusObjectPathVTable bus_manager_vtable;
|
||||
|
||||
DBusHandlerResult bus_message_filter(DBusConnection *c, DBusMessage *message, void *userdata);
|
||||
|
@ -272,9 +272,10 @@ char *unit_name_unescape(const char *f) {
|
||||
else if (*f == '\\') {
|
||||
int a, b;
|
||||
|
||||
if (f[1] != 'x' || (a = unhexchar(f[2])) < 0 ||
|
||||
(b = unhexchar(f[3])) < 0) {
|
||||
/* Invalid escape code, let's take it literal then */
|
||||
if (f[1] != 'x' ||
|
||||
(a = unhexchar(f[2])) < 0 ||
|
||||
(b = unhexchar(f[3])) < 0) {
|
||||
/* Invalid escape code, let's take it literal then */
|
||||
*(t++) = '\\';
|
||||
} else {
|
||||
*(t++) = (char) ((a << 4) | b);
|
||||
|
Loading…
Reference in New Issue
Block a user