various: use strdup_to() in various obvious cases
strdup_to() returns 0 on success and here we convert obvious blocks which either return -ENOMEM or 0.
This commit is contained in:
+1
-6
@@ -741,12 +741,7 @@ int chase_extract_filename(const char *path, const char *root, char **ret) {
|
||||
return r;
|
||||
}
|
||||
|
||||
char *fname = strdup(".");
|
||||
if (!fname)
|
||||
return -ENOMEM;
|
||||
|
||||
*ret = fname;
|
||||
return 0;
|
||||
return strdup_to(ret, ".");
|
||||
}
|
||||
|
||||
int chase_and_open(const char *path, const char *root, ChaseFlags chase_flags, int open_flags, char **ret_path) {
|
||||
|
||||
@@ -58,21 +58,18 @@ int device_path_make_major_minor(mode_t mode, dev_t devnum, char **ret) {
|
||||
}
|
||||
|
||||
int device_path_make_inaccessible(mode_t mode, char **ret) {
|
||||
char *s;
|
||||
const char *s;
|
||||
|
||||
assert(ret);
|
||||
|
||||
if (S_ISCHR(mode))
|
||||
s = strdup("/run/systemd/inaccessible/chr");
|
||||
s = "/run/systemd/inaccessible/chr";
|
||||
else if (S_ISBLK(mode))
|
||||
s = strdup("/run/systemd/inaccessible/blk");
|
||||
s = "/run/systemd/inaccessible/blk";
|
||||
else
|
||||
return -ENODEV;
|
||||
if (!s)
|
||||
return -ENOMEM;
|
||||
|
||||
*ret = s;
|
||||
return 0;
|
||||
return strdup_to(ret, s);
|
||||
}
|
||||
|
||||
int device_path_make_canonical(mode_t mode, dev_t devnum, char **ret) {
|
||||
|
||||
@@ -25,7 +25,7 @@ int format_ifname_full(int ifindex, FormatIfnameFlag flag, char buf[static IF_NA
|
||||
}
|
||||
|
||||
int format_ifname_full_alloc(int ifindex, FormatIfnameFlag flag, char **ret) {
|
||||
char buf[IF_NAMESIZE], *copy;
|
||||
char buf[IF_NAMESIZE];
|
||||
int r;
|
||||
|
||||
assert(ret);
|
||||
@@ -34,12 +34,7 @@ int format_ifname_full_alloc(int ifindex, FormatIfnameFlag flag, char **ret) {
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
copy = strdup(buf);
|
||||
if (!copy)
|
||||
return -ENOMEM;
|
||||
|
||||
*ret = copy;
|
||||
return 0;
|
||||
return strdup_to(ret, buf);
|
||||
}
|
||||
|
||||
char *format_bytes_full(char *buf, size_t l, uint64_t t, FormatBytesFlag flag) {
|
||||
|
||||
@@ -1094,7 +1094,6 @@ int path_extract_filename(const char *path, char **ret) {
|
||||
}
|
||||
|
||||
int path_extract_directory(const char *path, char **ret) {
|
||||
_cleanup_free_ char *a = NULL;
|
||||
const char *c, *next = NULL;
|
||||
int r;
|
||||
|
||||
@@ -1118,14 +1117,10 @@ int path_extract_directory(const char *path, char **ret) {
|
||||
if (*path != '/') /* filename only */
|
||||
return -EDESTADDRREQ;
|
||||
|
||||
a = strdup("/");
|
||||
if (!a)
|
||||
return -ENOMEM;
|
||||
*ret = TAKE_PTR(a);
|
||||
return 0;
|
||||
return strdup_to(ret, "/");
|
||||
}
|
||||
|
||||
a = strndup(path, next - path);
|
||||
_cleanup_free_ char *a = strndup(path, next - path);
|
||||
if (!a)
|
||||
return -ENOMEM;
|
||||
|
||||
|
||||
@@ -697,18 +697,10 @@ int vtnr_from_tty(const char *tty) {
|
||||
tty = active;
|
||||
}
|
||||
|
||||
if (tty == active)
|
||||
*ret = TAKE_PTR(active);
|
||||
else {
|
||||
char *tmp;
|
||||
|
||||
tmp = strdup(tty);
|
||||
if (!tmp)
|
||||
return -ENOMEM;
|
||||
|
||||
*ret = tmp;
|
||||
}
|
||||
if (tty != active)
|
||||
return strdup_to(ret, tty);
|
||||
|
||||
*ret = TAKE_PTR(active);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -988,7 +980,7 @@ bool on_tty(void) {
|
||||
}
|
||||
|
||||
int getttyname_malloc(int fd, char **ret) {
|
||||
char path[PATH_MAX], *c; /* PATH_MAX is counted *with* the trailing NUL byte */
|
||||
char path[PATH_MAX]; /* PATH_MAX is counted *with* the trailing NUL byte */
|
||||
int r;
|
||||
|
||||
assert(fd >= 0);
|
||||
@@ -1001,12 +993,7 @@ int getttyname_malloc(int fd, char **ret) {
|
||||
if (r > 0)
|
||||
return -r;
|
||||
|
||||
c = strdup(skip_dev_prefix(path));
|
||||
if (!c)
|
||||
return -ENOMEM;
|
||||
|
||||
*ret = c;
|
||||
return 0;
|
||||
return strdup_to(ret, skip_dev_prefix(path));
|
||||
}
|
||||
|
||||
int getttyname_harder(int fd, char **ret) {
|
||||
|
||||
@@ -793,12 +793,7 @@ int unit_name_mangle_with_suffix(
|
||||
return 1;
|
||||
|
||||
good:
|
||||
s = strdup(name);
|
||||
if (!s)
|
||||
return -ENOMEM;
|
||||
|
||||
*ret = TAKE_PTR(s);
|
||||
return 0;
|
||||
return strdup_to(ret, name);
|
||||
}
|
||||
|
||||
int slice_build_parent_slice(const char *slice, char **ret) {
|
||||
|
||||
@@ -3145,7 +3145,6 @@ int home_schedule_operation(Home *h, Operation *o, sd_bus_error *error) {
|
||||
|
||||
static int home_get_image_path_seat(Home *h, char **ret) {
|
||||
_cleanup_(sd_device_unrefp) sd_device *d = NULL;
|
||||
_cleanup_free_ char *c = NULL;
|
||||
const char *ip, *seat;
|
||||
struct stat st;
|
||||
int r;
|
||||
@@ -3178,12 +3177,7 @@ static int home_get_image_path_seat(Home *h, char **ret) {
|
||||
else if (r < 0)
|
||||
return r;
|
||||
|
||||
c = strdup(seat);
|
||||
if (!c)
|
||||
return -ENOMEM;
|
||||
|
||||
*ret = TAKE_PTR(c);
|
||||
return 0;
|
||||
return strdup_to(ret, seat);
|
||||
}
|
||||
|
||||
int home_auto_login(Home *h, char ***ret_seats) {
|
||||
|
||||
@@ -158,11 +158,7 @@ static int process_locale_list_item(
|
||||
if (new_locale[p])
|
||||
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Locale variable %s set twice, refusing.", name);
|
||||
|
||||
new_locale[p] = strdup(e);
|
||||
if (!new_locale[p])
|
||||
return -ENOMEM;
|
||||
|
||||
return 0;
|
||||
return strdup_to(&new_locale[p], e);
|
||||
}
|
||||
|
||||
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Locale assignment %s not valid, refusing.", assignment);
|
||||
|
||||
@@ -1028,7 +1028,6 @@ static int get_bus_path_by_id(
|
||||
|
||||
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
|
||||
_cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
|
||||
_cleanup_free_ char *p = NULL;
|
||||
const char *path;
|
||||
int r;
|
||||
|
||||
@@ -1047,12 +1046,7 @@ static int get_bus_path_by_id(
|
||||
if (r < 0)
|
||||
return bus_log_parse_error(r);
|
||||
|
||||
p = strdup(path);
|
||||
if (!p)
|
||||
return log_oom();
|
||||
|
||||
*ret = TAKE_PTR(p);
|
||||
return 0;
|
||||
return strdup_to(ret, path);
|
||||
}
|
||||
|
||||
static int show_session(int argc, char *argv[], void *userdata) {
|
||||
|
||||
@@ -314,11 +314,7 @@ static int session_device_verify(SessionDevice *sd) {
|
||||
if (sd->device->seat != sd->session->seat)
|
||||
return -EPERM;
|
||||
|
||||
sd->node = strdup(node);
|
||||
if (!sd->node)
|
||||
return -ENOMEM;
|
||||
|
||||
return 0;
|
||||
return strdup_to(&sd->node, node);
|
||||
}
|
||||
|
||||
int session_device_new(Session *s, dev_t dev, bool open_device, SessionDevice **ret) {
|
||||
|
||||
@@ -140,16 +140,10 @@ static int dnssd_service_load(Manager *manager, const char *filename) {
|
||||
|
||||
static int specifier_dnssd_hostname(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
|
||||
const Manager *m = ASSERT_PTR(userdata);
|
||||
char *n;
|
||||
|
||||
assert(m->llmnr_hostname);
|
||||
|
||||
n = strdup(m->llmnr_hostname);
|
||||
if (!n)
|
||||
return -ENOMEM;
|
||||
|
||||
*ret = n;
|
||||
return 0;
|
||||
return strdup_to(ret, m->llmnr_hostname);
|
||||
}
|
||||
|
||||
int dnssd_render_instance_name(Manager *m, DnssdService *s, char **ret) {
|
||||
|
||||
@@ -182,7 +182,6 @@ int ethtool_get_driver(int *ethtool_fd, const char *ifname, char **ret) {
|
||||
struct ifreq ifr = {
|
||||
.ifr_data = (void*) &ecmd,
|
||||
};
|
||||
char *d;
|
||||
int r;
|
||||
|
||||
assert(ethtool_fd);
|
||||
@@ -201,12 +200,7 @@ int ethtool_get_driver(int *ethtool_fd, const char *ifname, char **ret) {
|
||||
if (isempty(ecmd.driver))
|
||||
return -ENODATA;
|
||||
|
||||
d = strdup(ecmd.driver);
|
||||
if (!d)
|
||||
return -ENOMEM;
|
||||
|
||||
*ret = d;
|
||||
return 0;
|
||||
return strdup_to(ret, ecmd.driver);
|
||||
}
|
||||
|
||||
int ethtool_get_link_info(
|
||||
|
||||
@@ -3042,17 +3042,16 @@ int unit_file_set_default(
|
||||
int unit_file_get_default(
|
||||
RuntimeScope scope,
|
||||
const char *root_dir,
|
||||
char **name) {
|
||||
char **ret) {
|
||||
|
||||
_cleanup_(lookup_paths_done) LookupPaths lp = {};
|
||||
_cleanup_(install_context_done) InstallContext ctx = { .scope = scope };
|
||||
InstallInfo *info;
|
||||
char *n;
|
||||
int r;
|
||||
|
||||
assert(scope >= 0);
|
||||
assert(scope < _RUNTIME_SCOPE_MAX);
|
||||
assert(name);
|
||||
assert(ret);
|
||||
|
||||
r = lookup_paths_init(&lp, scope, 0, root_dir);
|
||||
if (r < 0)
|
||||
@@ -3063,12 +3062,7 @@ int unit_file_get_default(
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
n = strdup(info->name);
|
||||
if (!n)
|
||||
return -ENOMEM;
|
||||
|
||||
*name = n;
|
||||
return 0;
|
||||
return strdup_to(ret, info->name);
|
||||
}
|
||||
|
||||
int unit_file_lookup_state(
|
||||
|
||||
@@ -175,7 +175,7 @@ int unit_file_set_default(
|
||||
int unit_file_get_default(
|
||||
RuntimeScope scope,
|
||||
const char *root_dir,
|
||||
char **name);
|
||||
char **ret);
|
||||
int unit_file_add_dependency(
|
||||
RuntimeScope scope,
|
||||
UnitFileFlags flags,
|
||||
|
||||
@@ -140,7 +140,7 @@ static char* systemd_crypt_ra(const char *phrase, const char *setting, void **da
|
||||
int hash_password_full(const char *password, void **cd_data, int *cd_size, char **ret) {
|
||||
_cleanup_free_ char *salt = NULL;
|
||||
_cleanup_(erase_and_freep) void *_cd_data = NULL;
|
||||
char *p;
|
||||
const char *p;
|
||||
int r, _cd_size = 0;
|
||||
|
||||
assert(!!cd_data == !!cd_size);
|
||||
@@ -155,12 +155,7 @@ int hash_password_full(const char *password, void **cd_data, int *cd_size, char
|
||||
return log_debug_errno(errno_or_else(SYNTHETIC_ERRNO(EINVAL)),
|
||||
CRYPT_RA_NAME "() failed: %m");
|
||||
|
||||
p = strdup(p);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
|
||||
*ret = p;
|
||||
return 0;
|
||||
return strdup_to(ret, p);
|
||||
}
|
||||
|
||||
bool looks_like_hashed_password(const char *s) {
|
||||
|
||||
@@ -32,14 +32,8 @@ int net_get_type_string(sd_device *device, uint16_t iftype, char **ret) {
|
||||
|
||||
if (device &&
|
||||
sd_device_get_devtype(device, &t) >= 0 &&
|
||||
!isempty(t)) {
|
||||
p = strdup(t);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
|
||||
*ret = p;
|
||||
return 0;
|
||||
}
|
||||
!isempty(t))
|
||||
return strdup_to(ret, t);
|
||||
|
||||
t = arphrd_to_name(iftype);
|
||||
if (!t)
|
||||
|
||||
@@ -141,16 +141,8 @@ int terminal_urlify_path(const char *path, const char *text, char **ret) {
|
||||
if (isempty(text))
|
||||
text = path;
|
||||
|
||||
if (!urlify_enabled()) {
|
||||
char *n;
|
||||
|
||||
n = strdup(text);
|
||||
if (!n)
|
||||
return -ENOMEM;
|
||||
|
||||
*ret = n;
|
||||
return 0;
|
||||
}
|
||||
if (!urlify_enabled())
|
||||
return strdup_to(ret, text);
|
||||
|
||||
r = file_url_from_path(path, &url);
|
||||
if (r < 0)
|
||||
|
||||
Reference in New Issue
Block a user