X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=device.c;h=6de7d518c718cfc30496f7a5fb45f9824a25ad2e;hb=24e61ac49db6add10ffa448f42202245fb883b96;hp=c5901c95ff67697973ed4d22bc7bb65ddb1f5a9b;hpb=2e478a46c3754ede1a7af57b961056a2a375a799;p=elogind.git diff --git a/device.c b/device.c index c5901c95f..6de7d518c 100644 --- a/device.c +++ b/device.c @@ -162,9 +162,12 @@ static int device_process_new_device(Manager *m, struct udev_device *dev, bool u } if ((model = udev_device_get_property_value(dev, "ID_MODEL_FROM_DATABASE")) || - (model = udev_device_get_property_value(dev, "ID_MODEL"))) + (model = udev_device_get_property_value(dev, "ID_MODEL"))) { if ((r = unit_set_description(u, model)) < 0) goto fail; + } else if (dn) + if ((r = unit_set_description(u, dn)) < 0) + goto fail; unit_add_to_load_queue(u); } else { @@ -183,8 +186,10 @@ static int device_process_new_device(Manager *m, struct udev_device *dev, bool u if (names) { FOREACH_WORD(w, l, names, state) { - if (!(e = strndup(w, l))) + if (!(e = strndup(w, l))) { + r = -ENOMEM; goto fail; + } r = unit_add_name(u, e); free(e); @@ -196,8 +201,10 @@ static int device_process_new_device(Manager *m, struct udev_device *dev, bool u if (wants) { FOREACH_WORD(w, l, wants, state) { - if (!(e = strndup(w, l))) + if (!(e = strndup(w, l))) { + r = -ENOMEM; goto fail; + } r = unit_add_dependency_by_name(u, UNIT_WANTS, e); free(e);