mirror of
https://github.com/systemd/systemd.git
synced 2026-08-05 07:30:30 +00:00
basic/time-util: use strdup_to() and reformat a bit
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user