timedatectl: assert timezone is not null in setenv() call.
setenv is declared as: extern int setenv (const char *__name, const char *__value, int __replace) __THROW __nonnull ((2)); And i->timezone can be NULL, if for example /etc/localtime is missing. Previously that worked, but now result in a libc dumping core, as seen with gcc 2.22, due to: https://sourceware.org/ml/glibc-cvs/2015-q2/msg00075.html
This commit is contained in:
parent
4105232edc
commit
8c4fa32acf
|
@ -96,7 +96,7 @@ static void print_status_info(const StatusInfo *i) {
|
|||
old_tz = strdupa(tz);
|
||||
|
||||
/* Set the new $TZ */
|
||||
if (setenv("TZ", i->timezone, true) < 0)
|
||||
if (i->timezone && setenv("TZ", i->timezone, true) < 0)
|
||||
log_warning_errno(errno, "Failed to set TZ environment variable, ignoring: %m");
|
||||
else
|
||||
tzset();
|
||||
|
|
Loading…
Reference in a new issue