diff options
author | Luca Boccassi <luca.boccassi@microsoft.com> | 2021-04-15 20:33:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-15 20:33:54 +0100 |
commit | 2d8c8549abd306b19a99dc7735bcb4b252eab6d9 (patch) | |
tree | 849b2d3a73ac4a958ecd552da8909580a3443233 /src/libsystemd | |
parent | 5c17a470a7bd3794407cdacdf40069e50168079d (diff) | |
parent | 8d1c9489ef373fc4d8de326b49086faa01185f32 (diff) | |
download | systemd-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.h | 17 | ||||
-rw-r--r-- | src/libsystemd/sd-device/sd-device.c | 5 |
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 */ |