From 14e187f1e2c358c46ccb22963794aa91feccbf41 Mon Sep 17 00:00:00 2001 From: illiliti Date: Sun, 23 Aug 2020 15:31:10 +0300 Subject: [PATCH] check file size --- udev_device.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/udev_device.c b/udev_device.c index f312810..e8b0c9b 100644 --- a/udev_device.c +++ b/udev_device.c @@ -560,6 +560,7 @@ struct udev_device *udev_device_new_from_file(struct udev *udev, const char *pat char line[LINE_MAX], syspath[PATH_MAX], devnode[PATH_MAX]; struct udev_device *udev_device; char *pos, *sysname; + struct stat st; FILE *file; int i; @@ -569,6 +570,11 @@ struct udev_device *udev_device_new_from_file(struct udev *udev, const char *pat return NULL; } + if (stat(path, &st) != 0 || st.st_size > 8192) { + free(udev_device); + return NULL; + } + file = fopen(path, "r"); if (!file) {