basic/time-util: use strdup_to() and reformat a bit

This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2024-03-19 23:32:55 +01:00
parent 8f6ea3e827
commit 4ab305fa3b

View File

@@ -1606,38 +1606,24 @@ bool clock_supported(clockid_t clock) {
int get_timezone(char **ret) {
_cleanup_free_ char *t = NULL;
const char *e;
char *z;
int r;
assert(ret);
r = readlink_malloc("/etc/localtime", &t);
if (r == -ENOENT) {
if (r == -ENOENT)
/* If the symlink does not exist, assume "UTC", like glibc does */
z = strdup("UTC");
if (!z)
return -ENOMEM;
*ret = z;
return 0;
}
return strdup_to(ret, "UTC");
if (r < 0)
return r; /* returns EINVAL if not a symlink */
return r; /* Return EINVAL if not a symlink */
e = PATH_STARTSWITH_SET(t, "/usr/share/zoneinfo/", "../usr/share/zoneinfo/");
const char *e = PATH_STARTSWITH_SET(t, "/usr/share/zoneinfo/", "../usr/share/zoneinfo/");
if (!e)
return -EINVAL;
if (!timezone_is_valid(e, LOG_DEBUG))
return -EINVAL;
z = strdup(e);
if (!z)
return -ENOMEM;
*ret = z;
return 0;
return strdup_to(ret, e);
}
time_t mktime_or_timegm(struct tm *tm, bool utc) {