From 8a791603cbb74dc799311f48c2722cc5d6b1a42b Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 3 Dec 2014 01:59:42 +0100 Subject: [PATCH] libudev: set errno properly in all error conditions of udev_device_new_from_syspath() (cherry picked from commit 154e6f233af028cf76608d49a3b7ed8de61373d8) --- src/libudev/libudev-device.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c index 269937407..e2afcb83e 100644 --- a/src/libudev/libudev-device.c +++ b/src/libudev/libudev-device.c @@ -730,8 +730,13 @@ _public_ struct udev_device *udev_device_new_from_syspath(struct udev *udev, con return NULL; } else { /* everything else just needs to be a directory */ - if (stat(path, &statbuf) != 0 || !S_ISDIR(statbuf.st_mode)) + if (stat(path, &statbuf) != 0) return NULL; + + if (!S_ISDIR(statbuf.st_mode)) { + errno = EISDIR; + return NULL; + } } udev_device = udev_device_new(udev);