From 53fae771bcf1623cd28791c48fa60d9d5e5086e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Wed, 20 May 2015 23:34:12 -0400 Subject: [PATCH] sd-device: fix return codes on error asprintf() does not set errno. --- src/libsystemd/sd-device/device-enumerator.c | 6 +++--- src/libsystemd/sd-device/sd-device.c | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/libsystemd/sd-device/device-enumerator.c b/src/libsystemd/sd-device/device-enumerator.c index 4de36d54e19..ce4862d7f0a 100644 --- a/src/libsystemd/sd-device/device-enumerator.c +++ b/src/libsystemd/sd-device/device-enumerator.c @@ -764,9 +764,9 @@ static int parent_crawl_children(sd_device_enumerator *enumerator, const char *p if (dent->d_type != DT_DIR) continue; - k = asprintf(&child, "%s/%s", path, dent->d_name); - if (k < 0) - return -errno; + child = strjoin(path, "/", dent->d_name, NULL); + if (!child) + return -ENOMEM; k = parent_add_child(enumerator, child); if (k < 0) diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c index 691b9c63273..97da4a8eea0 100644 --- a/src/libsystemd/sd-device/sd-device.c +++ b/src/libsystemd/sd-device/sd-device.c @@ -1193,12 +1193,12 @@ int device_get_id_filename(sd_device *device, const char **ret) { streq(subsystem, "block") ? 'b' : 'c', major(devnum), minor(devnum)); if (r < 0) - return -errno; + return -ENOMEM; } else if (ifindex > 0) { /* use netdev ifindex -- n3 */ r = asprintf(&id, "n%u", ifindex); if (r < 0) - return -errno; + return -ENOMEM; } else { /* use $subsys:$sysname -- pci:0000:00:1f.2 * sysname() has '!' translated, get it from devpath @@ -1211,7 +1211,7 @@ int device_get_id_filename(sd_device *device, const char **ret) { r = asprintf(&id, "+%s:%s", subsystem, sysname); if (r < 0) - return -errno; + return -ENOMEM; } device->id_filename = id;