X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev%2Flib%2Flibudev-device.c;h=578afe7ec2d4e77bf707faed29da7063121a7417;hp=00b9440386171542f294bbbcb2f6f6393ec01108;hb=95d90c4fe0581d8b630c62e38591b3af960d131a;hpb=9b3a33a9ff9386b4af3229762fa7673e670b00e7 diff --git a/udev/lib/libudev-device.c b/udev/lib/libudev-device.c index 00b944038..578afe7ec 100644 --- a/udev/lib/libudev-device.c +++ b/udev/lib/libudev-device.c @@ -346,8 +346,15 @@ int udev_device_get_properties(struct udev_device *udev_device, const char *udev_device_get_driver(struct udev_device *udev_device) { + char driver[NAME_SIZE]; + if (udev_device == NULL) return NULL; + if (udev_device->driver != NULL) + return udev_device->driver; + if (util_get_sys_driver(udev_device->udev, udev_device->devpath, driver, sizeof(driver)) < 2) + return NULL; + udev_device->driver = strdup(driver); return udev_device->driver; }