X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fcore%2Fdevice.c;h=9fca82ab169f52dd341b42b1176ec35ea09ec326;hp=e83e797787905aa19a2cd5322af53ffead491730;hb=d9abd1493d6adca4038121f2c969fdcaf89b9b7a;hpb=44a6b1b68029833893f6e9cee35aa27a974038f6 diff --git a/src/core/device.c b/src/core/device.c index e83e79778..9fca82ab1 100644 --- 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) { - char *e; + char *e, *n; 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); + + r = unit_add_dependency_by_name(u, UNIT_WANTS, n, NULL, true); + free(n); if (r < 0) goto fail; }