[prev in list] [next in list] [prev in thread] [next in thread]
List: busybox
Subject: Re: [PATCH] hwclock: Fix settimeofday for glibc v2.31+
From: Denys Vlasenko <vda.linux () googlemail ! com>
Date: 2020-08-15 20:30:25
Message-ID: CAK1hOcPhDLCjRQrxmVwVp7FJxV_ZGcDSO9ZY2jxD7NYRaw+wNQ () mail ! gmail ! com
[Download RAW message or body]
Applied, thanks
On Mon, Aug 10, 2020 at 4:59 PM Eddie James
<eajames+busybox@linux.ibm.com> wrote:
>
> From: Eddie James <eajames@linux.ibm.com>
>
> The glibc implementation changed for settimeofday, resulting in "invalid
> argument" error when attempting to set both timezone and time with a single
> call. Fix this by calling settimeofday twice
>
> Signed-off-by: Eddie James <eajames@linux.ibm.com>
> ---
> util-linux/hwclock.c | 17 +++++++++++++----
> 1 file changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/util-linux/hwclock.c b/util-linux/hwclock.c
> index dc97d8fb4..69b2d96e1 100644
> --- a/util-linux/hwclock.c
> +++ b/util-linux/hwclock.c
> @@ -129,10 +129,14 @@ static void to_sys_clock(const char **pp_rtcname, int utc)
> */
> tz.tz_dsttime = 0;
>
> + /* glibc v2.31+ returns an error if both args are non-NULL */
> + if (settimeofday(NULL, &tz))
> + bb_simple_perror_msg_and_die("settimeofday tz");
> +
> tv.tv_sec = read_rtc(pp_rtcname, NULL, utc);
> tv.tv_usec = 0;
> - if (settimeofday(&tv, &tz))
> - bb_simple_perror_msg_and_die("settimeofday");
> + if (settimeofday(&tv, NULL))
> + bb_simple_perror_msg_and_die("settimeofday tv");
> }
>
> static void from_sys_clock(const char **pp_rtcname, int utc)
> @@ -283,8 +287,13 @@ static void set_system_clock_timezone(int utc)
> gettimeofday(&tv, NULL);
> if (!utc)
> tv.tv_sec += tz.tz_minuteswest * 60;
> - if (settimeofday(&tv, &tz))
> - bb_simple_perror_msg_and_die("settimeofday");
> +
> + /* glibc v2.31+ returns an error if both args are non-NULL */
> + if (settimeofday(NULL, &tz))
> + bb_simple_perror_msg_and_die("settimeofday tz");
> +
> + if (settimeofday(&tv, NULL))
> + bb_simple_perror_msg_and_die("settimeofday tv");
> }
>
> //usage:#define hwclock_trivial_usage
> --
> 2.26.2
>
> _______________________________________________
> busybox mailing list
> busybox@busybox.net
> http://lists.busybox.net/mailman/listinfo/busybox
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic