[PATCH 2/2] tzset_r.c(_tzset_unlocked_r): POSIX angle bracket <> support

jdoubleu hi@jdoubleu.de
Thu Apr 7 15:48:38 GMT 2022


Hi,

> +      if (sscanf (tzenv, "%10[-+0-9A-Za-z]%n", __tzname_std, &n) <= 0
> +		|| n < TZNAME_MIN || TZNAME_MAX < n || '>' != tzenv[n])

during testing I noticed, that the condition `TZNAME_MAX < n` can never 
be true. The format to sscanf explicitly parses 10 characters at maximum.

Longer input strings will be truncated. That is also the case with the 
glibc implementation.


Cheers
---
🙎🏻‍♂️ jdoubleu
On 4/5/2022 6:03 AM, Brian Inglis wrote:
> 
> local defines for POSIX minimum TZ abbr size 3 TZNAME_MIN and
> maximum TZ abbr size supported 10 TZNAME_MAX
> allow POSIX angle bracket < > quoted signed alphanumeric tz abbr e.g. <MESZ+0330>
> allow POSIX unquoted alphabetic tz abbr e.g. MESZ
> allow same suuport for DST tz abbr
> ---
>   newlib/libc/time/tzset_r.c | 67 +++++++++++++++++++++++++++++++-------
>   1 file changed, 55 insertions(+), 12 deletions(-)
> 


More information about the Newlib mailing list