summaryrefslogtreecommitdiff
path: root/src/libsystemd
diff options
context:
space:
mode:
authorLuca Boccassi <luca.boccassi@microsoft.com>2021-04-15 20:33:54 +0100
committerGitHub <noreply@github.com>2021-04-15 20:33:54 +0100
commit2d8c8549abd306b19a99dc7735bcb4b252eab6d9 (patch)
tree849b2d3a73ac4a958ecd552da8909580a3443233 /src/libsystemd
parent5c17a470a7bd3794407cdacdf40069e50168079d (diff)
parent8d1c9489ef373fc4d8de326b49086faa01185f32 (diff)
downloadsystemd-2d8c8549abd306b19a99dc7735bcb4b252eab6d9.tar.gz
Merge pull request #19317 from keszybz/check-return-values-from-log_errno-functions
Check return values from log_errno functions
Diffstat (limited to 'src/libsystemd')
-rw-r--r--src/libsystemd/sd-device/device-util.h17
-rw-r--r--src/libsystemd/sd-device/sd-device.c5
2 files changed, 14 insertions, 8 deletions
diff --git a/src/libsystemd/sd-device/device-util.h b/src/libsystemd/sd-device/device-util.h
index 026bdcd644..e2adfe8132 100644
--- a/src/libsystemd/sd-device/device-util.h
+++ b/src/libsystemd/sd-device/device-util.h
@@ -45,22 +45,29 @@
device; \
device = sd_device_enumerator_get_subsystem_next(enumerator))
-#define log_device_full_errno(device, level, error, ...) \
+#define log_device_full_errno_zerook(device, level, error, ...) \
({ \
const char *_sysname = NULL; \
sd_device *_d = (device); \
- int _level = (level), _error = (error); \
+ int _level = (level), _e = (error); \
\
if (_d && _unlikely_(log_get_max_level() >= LOG_PRI(_level))) \
(void) sd_device_get_sysname(_d, &_sysname); \
- log_object_internal(_level, _error, PROJECT_FILE, __LINE__, __func__, \
+ log_object_internal(_level, _e, PROJECT_FILE, __LINE__, __func__, \
_sysname ? "DEVICE=" : NULL, _sysname, \
NULL, NULL, __VA_ARGS__); \
})
-#define log_device_full(device, level, ...) (void) log_device_full_errno(device, level, 0, __VA_ARGS__)
+#define log_device_full_errno(device, level, error, ...) \
+ ({ \
+ int _error = (error); \
+ ASSERT_NON_ZERO(_error); \
+ log_device_full_errno_zerook(device, level, _error, __VA_ARGS__); \
+ })
+
+#define log_device_full(device, level, ...) (void) log_device_full_errno_zerook(device, level, 0, __VA_ARGS__)
-#define log_device_debug(device, ...) log_device_full_errno(device, LOG_DEBUG, 0, __VA_ARGS__)
+#define log_device_debug(device, ...) log_device_full(device, LOG_DEBUG, __VA_ARGS__)
#define log_device_info(device, ...) log_device_full(device, LOG_INFO, __VA_ARGS__)
#define log_device_notice(device, ...) log_device_full(device, LOG_NOTICE, __VA_ARGS__)
#define log_device_warning(device, ...) log_device_full(device, LOG_WARNING, __VA_ARGS__)
diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c
index d9ea9852e3..927a4f1d52 100644
--- a/src/libsystemd/sd-device/sd-device.c
+++ b/src/libsystemd/sd-device/sd-device.c
@@ -178,13 +178,12 @@ int device_set_syspath(sd_device *device, const char *_syspath, bool verify) {
/* all 'devices' require an 'uevent' file */
path = strjoina(syspath, "/uevent");
- r = access(path, F_OK);
- if (r < 0) {
+ if (access(path, F_OK) < 0) {
if (errno == ENOENT)
/* this is not a valid device */
return -ENODEV;
- return log_debug_errno(errno, "sd-device: %s does not have an uevent file: %m", syspath);
+ return log_debug_errno(errno, "sd-device: cannot access uevent file for %s: %m", syspath);
}
} else {
/* everything else just needs to be a directory */