X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibudev%2Flibudev-monitor.c;h=59698b85b70774f22bec0e73214e58b28b1d2cca;hb=1e98337f26cb6805a684eff9bc5eb842512ac8fa;hp=0a2ab82a89b28807aa41320b45880fc176dcf269;hpb=370c860f748d149097710dc7952a64f627db9de7;p=elogind.git diff --git a/src/libudev/libudev-monitor.c b/src/libudev/libudev-monitor.c index 0a2ab82a8..59698b85b 100644 --- a/src/libudev/libudev-monitor.c +++ b/src/libudev/libudev-monitor.c @@ -108,16 +108,22 @@ static struct udev_monitor *udev_monitor_new(struct udev *udev) /* we consider udev running when /dev is on devtmpfs */ static bool udev_has_devtmpfs(struct udev *udev) { - union file_handle_union h = { .handle.handle_bytes = MAX_HANDLE_SZ, }; - int mount_id; + + union file_handle_union h = { + .handle.handle_bytes = MAX_HANDLE_SZ + }; + _cleanup_fclose_ FILE *f = NULL; char line[LINE_MAX], *e; + int mount_id; int r; r = name_to_handle_at(AT_FDCWD, "/dev", &h.handle, &mount_id, 0); - if (r < 0) + if (r < 0) { + if (errno != EOPNOTSUPP) + udev_err(udev, "name_to_handle_at on /dev: %m\n"); return false; - + } f = fopen("/proc/self/mountinfo", "re"); if (!f) @@ -406,7 +412,10 @@ _public_ int udev_monitor_enable_receiving(struct udev_monitor *udev_monitor) } /* enable receiving of sender credentials */ - setsockopt(udev_monitor->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); + err = setsockopt(udev_monitor->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); + if (err < 0) + udev_err(udev_monitor->udev, "setting SO_PASSCRED failed: %m\n"); + return 0; }