From 894aa4890604e684eb254313da1ff4098b20ba4f Mon Sep 17 00:00:00 2001 From: illiliti Date: Sun, 23 Aug 2020 15:23:36 +0300 Subject: [PATCH] fix memory leak --- udev_device.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/udev_device.c b/udev_device.c index bebfd2c..f312810 100644 --- a/udev_device.c +++ b/udev_device.c @@ -569,6 +569,13 @@ struct udev_device *udev_device_new_from_file(struct udev *udev, const char *pat return NULL; } + file = fopen(path, "r"); + + if (!file) { + free(udev_device); + return NULL; + } + udev_device->udev = udev; udev_device->refcount = 1; udev_device->parent = NULL; @@ -576,12 +583,6 @@ struct udev_device *udev_device_new_from_file(struct udev *udev, const char *pat udev_list_entry_init(&udev_device->properties); udev_list_entry_init(&udev_device->sysattrs); - file = fopen(path, "r"); - - if (!file) { - return NULL; - } - while (fgets(line, sizeof(line), file)) { line[strcspn(line, "\n")] = '\0';