summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-11-19 01:14:21 +0100
committerAnthony G. Basile <blueness@gentoo.org>2014-01-09 15:34:00 -0500
commitfc5bd12597c663380c39d6de3bbef894e6d563f8 (patch)
tree96000e85aeb847123641ce7a12a8a432a07b7462
parentee8760a00a1c6c3f707596e62583fd98960f2ce8 (diff)
libudev: always return valid negative error codes on API functions
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
-rw-r--r--src/libudev/libudev-device.c8
-rw-r--r--src/libudev/libudev-monitor.c12
2 files changed, 10 insertions, 10 deletions
diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c
index d7f672f187..b5b07fc5de 100644
--- a/src/libudev/libudev-device.c
+++ b/src/libudev/libudev-device.c
@@ -536,7 +536,7 @@ int udev_device_read_db(struct udev_device *udev_device, const char *dbfile)
f = fopen(dbfile, "re");
if (f == NULL) {
udev_dbg(udev_device->udev, "no db file to read %s: %m\n", dbfile);
- return -1;
+ return -errno;
}
udev_device->is_initialized = true;
@@ -593,7 +593,7 @@ int udev_device_read_uevent_file(struct udev_device *udev_device)
strscpyl(filename, sizeof(filename), udev_device->syspath, "/uevent", NULL);
f = fopen(filename, "re");
if (f == NULL)
- return -1;
+ return -errno;
udev_device->uevent_loaded = true;
while (fgets(line, sizeof(line), f)) {
@@ -1521,13 +1521,13 @@ static int udev_device_sysattr_list_read(struct udev_device *udev_device)
int num = 0;
if (udev_device == NULL)
- return -1;
+ return -EINVAL;
if (udev_device->sysattr_list_read)
return 0;
dir = opendir(udev_device_get_syspath(udev_device));
if (!dir)
- return -1;
+ return -errno;
for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) {
char path[UTIL_PATH_SIZE];
diff --git a/src/libudev/libudev-monitor.c b/src/libudev/libudev-monitor.c
index 7833e75080..91f6a0806a 100644
--- a/src/libudev/libudev-monitor.c
+++ b/src/libudev/libudev-monitor.c
@@ -288,7 +288,7 @@ _public_ int udev_monitor_filter_update(struct udev_monitor *udev_monitor)
bpf_stmt(ins, &i, BPF_RET|BPF_K, 0xffffffff);
if (i+1 >= ELEMENTSOF(ins))
- return -1;
+ return -E2BIG;
}
/* nothing matched, drop packet */
@@ -303,7 +303,7 @@ _public_ int udev_monitor_filter_update(struct udev_monitor *udev_monitor)
filter.len = i;
filter.filter = ins;
err = setsockopt(udev_monitor->sock, SOL_SOCKET, SO_ATTACH_FILTER, &filter, sizeof(filter));
- return err;
+ return err < 0 ? -errno : 0;
}
int udev_monitor_allow_unicast_sender(struct udev_monitor *udev_monitor, struct udev_monitor *sender)
@@ -350,7 +350,7 @@ _public_ int udev_monitor_enable_receiving(struct udev_monitor *udev_monitor)
udev_monitor->snl.nl.nl_pid = snl.nl.nl_pid;
} else {
udev_err(udev_monitor->udev, "bind failed: %m\n");
- return err;
+ return -errno;
}
/* enable receiving of sender credentials */
@@ -371,7 +371,7 @@ _public_ int udev_monitor_enable_receiving(struct udev_monitor *udev_monitor)
_public_ int udev_monitor_set_receive_buffer_size(struct udev_monitor *udev_monitor, int size)
{
if (udev_monitor == NULL)
- return -1;
+ return -EINVAL;
return setsockopt(udev_monitor->sock, SOL_SOCKET, SO_RCVBUFFORCE, &size, sizeof(size));
}
@@ -381,7 +381,7 @@ int udev_monitor_disconnect(struct udev_monitor *udev_monitor)
err = close(udev_monitor->sock);
udev_monitor->sock = -1;
- return err;
+ return err < 0 ? -errno : 0;
}
/**
@@ -451,7 +451,7 @@ _public_ struct udev *udev_monitor_get_udev(struct udev_monitor *udev_monitor)
_public_ int udev_monitor_get_fd(struct udev_monitor *udev_monitor)
{
if (udev_monitor == NULL)
- return -1;
+ return -EINVAL;
return udev_monitor->sock;
}