chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
core: escape unit name from udev
[elogind.git]
/
src
/
core
/
device.c
diff --git
a/src/core/device.c
b/src/core/device.c
index e83e797787905aa19a2cd5322af53ffead491730..9fca82ab169f52dd341b42b1176ec35ea09ec326 100644
(file)
--- a/
src/core/device.c
+++ b/
src/core/device.c
@@
-281,16
+281,22
@@
static int device_update_unit(Manager *m, struct udev_device *dev, const char *p
size_t l;
FOREACH_WORD_QUOTED(w, l, wants, state) {
size_t l;
FOREACH_WORD_QUOTED(w, l, wants, state) {
- char *e;
+ char *e
, *n
;
e = strndup(w, l);
if (!e) {
r = -ENOMEM;
goto fail;
}
e = strndup(w, l);
if (!e) {
r = -ENOMEM;
goto fail;
}
-
- r = unit_add_dependency_by_name(u, UNIT_WANTS, e, NULL, true);
+ n = unit_name_mangle(e);
+ if (!n) {
+ r = -ENOMEM;
+ goto fail;
+ }
free(e);
free(e);
+
+ r = unit_add_dependency_by_name(u, UNIT_WANTS, n, NULL, true);
+ free(n);
if (r < 0)
goto fail;
}
if (r < 0)
goto fail;
}