chiark / gitweb /
libudev: accept NULL in udev_device_get_tags_list_entry()
[elogind.git] / libudev / libudev-device.c
index 478fdcb92d7f80231662b10ccfceef6f1a2c7900..a6a1ecb4e90f84651b26ea0c5cb345928bbeb082 100644 (file)
@@ -284,6 +284,8 @@ int udev_device_read_db(struct udev_device *udev_device)
                dbg(udev_device->udev, "error reading db file %s: %m\n", filename);
                return -1;
        }
+       udev_device->db_loaded = true;
+
        while (fgets(line, sizeof(line), f)) {
                ssize_t len;
                const char *val;
@@ -322,7 +324,6 @@ int udev_device_read_db(struct udev_device *udev_device)
        fclose(f);
 
        info(udev_device->udev, "device %p filled with db file data\n", udev_device);
-       udev_device->db_loaded = true;
        return 0;
 }
 
@@ -341,6 +342,7 @@ int udev_device_read_uevent_file(struct udev_device *udev_device)
        f = fopen(filename, "r");
        if (f == NULL)
                return -1;
+       udev_device->uevent_loaded = true;
 
        while (fgets(line, sizeof(line), f)) {
                char *pos;
@@ -364,7 +366,6 @@ int udev_device_read_uevent_file(struct udev_device *udev_device)
 
        udev_device->devnum = makedev(maj, min);
        fclose(f);
-       udev_device->uevent_loaded = true;
        return 0;
 }
 
@@ -1288,6 +1289,8 @@ void udev_device_cleanup_tags_list(struct udev_device *udev_device)
 
 struct udev_list_entry *udev_device_get_tags_list_entry(struct udev_device *udev_device)
 {
+       if (udev_device == NULL)
+               return NULL;
        return udev_list_get_entry(&udev_device->tags_list);
 }