From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 2E9FA385842B for ; Wed, 27 Apr 2022 19:30:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2E9FA385842B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1651087843; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=DZEOTwFKMRARxXKUk1SDuyVk4n5Qj6HFdLruGbYdKWs=; b=cZQEswqQtFUGHv8yIAXhW6+2N0cGV1Bb31Vvj8keGuWFbkMAORUt1JUJ9/Bkt5h3IO8rXp dBp6dEcqY7wdVWHrmhmxuWb2dbJ/ohwaScaiHGpaL84AxniA6bIURbJyr0X7syQkMsHTIq jiMuDty9Ku9GJC+IHUtcToE+oxlJgDQ= Received: from mail-yb1-f200.google.com (mail-yb1-f200.google.com [209.85.219.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-651-Af9H2NEVOfSkDGunaZ47tw-1; Wed, 27 Apr 2022 15:30:42 -0400 X-MC-Unique: Af9H2NEVOfSkDGunaZ47tw-1 Received: by mail-yb1-f200.google.com with SMTP id h16-20020a056902009000b00628a70584b2so2545785ybs.6 for ; Wed, 27 Apr 2022 12:30:42 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ermt78daI8o2mHUYKyzz8WyZ0NZj0yXCfDLiDTcJqbY=; b=EpHWkQSM0BEj2SrZxb7ztpQqL0Oa2ekOC6sc3Ows8ZgkmZ7/yqmd4TkuejwKwl6jsF VIKyc5fy00hs5xe7Uv/07+gmIweCQ0IRCCJboX64rhTUPjswEWlZoza+zjRUJsLxobkZ 6Itrr6Ojp0KVK+yAghDZnRYw4zxIvTW+esMioiLazNvPKKsr19POivIVL0At/wVL0Vgn abRMkARlI/gp0uVvX3la65jXJXnhRfYwBS9MUAomTtZDny2jBrM1O+VeAL35Hu2dYead AfBueSnKNklMyxH9OH5AYSHsofgg1x1VLUkicdROVEc24kSfJV0WKD4cI8kMoujmUSK+ wlNA== X-Gm-Message-State: AOAM531gAEev21U5qZxdDhtviMea9y/BBjj9QRMB25OS3VrcPfz490TS 4it78ofjjxouv19ctjbSDWBhBzRfoeV71tzvrFxq3bCCAI0WXhU3RFUoM3De7tutuRSNvwioDmf CreW9NYHal5oR38rHSNH6mMqlRyEEAhQ= X-Received: by 2002:a81:5785:0:b0:2f4:dfcb:717c with SMTP id l127-20020a815785000000b002f4dfcb717cmr28974774ywb.456.1651087841319; Wed, 27 Apr 2022 12:30:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxkJRXAZl6GWKk8cWTSNimqAg6UH+hTJKgRfW1N98TubopEZ3ncxFCU6OqWAS3E7frJ9Qrz4l8w+/zgUDzqO4A= X-Received: by 2002:a81:5785:0:b0:2f4:dfcb:717c with SMTP id l127-20020a815785000000b002f4dfcb717cmr28974705ywb.456.1651087840466; Wed, 27 Apr 2022 12:30:40 -0700 (PDT) MIME-Version: 1.0 References: <822e81a0-ed9f-200e-3318-0495456ad67e@SystematicSw.ab.ca> <20220407233425.2012-1-Brian.Inglis@SystematicSW.ab.ca> <9603e3aa-bd7d-6740-c710-27ace1d80397@SystematicSw.ab.ca> <25cfc7a2-2c66-f9fe-581b-8d3cec5d3bd9@jdoubleu.de> <15976fc5-2260-5fa7-ff4d-48ca8a640d59@SystematicSw.ab.ca> <2a909d6a-cdfd-0642-68de-7082c9fb0e0a@jdoubleu.de> In-Reply-To: <2a909d6a-cdfd-0642-68de-7082c9fb0e0a@jdoubleu.de> From: Jeff Johnston Date: Wed, 27 Apr 2022 15:30:29 -0400 Message-ID: Subject: Re: [PATCH] add tests for tzset(3) To: jdoubleu Cc: Newlib Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jjohnstn@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="00000000000039e9b605dda7d87f" X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00, BODY_8BITS, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, HTML_MESSAGE, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: newlib@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Newlib mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Apr 2022 19:30:47 -0000 --00000000000039e9b605dda7d87f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I have taken a stab at creating a tzset_r.c that handles errors by setting timezone to unnamed UTC. Let me know if there are any issues. -- Jeff J. On Fri, Apr 15, 2022 at 6:10 AM jdoubleu wrote: > On Thu, Apr 14, 2022 at 12:31 PM Brian Inglis wrote: > > I am still not hearing from where the requirement originates to set > > UTC/GMT/etc or do anything other than leave everything as is. > > Is this glibc behaviour, and why not /etc/localtime or /etc/timezone? > > On 4/14/2022 9:23 PM, Jeff Johnston wrote: > > It is glibc behaviour as I mentioned in my note. The following is also > > from man tzset > > Aside from glibc, the BSD man page[1] also states: > > If the TZ environment variable [..] cannot be interpreted as a direct > specification, UTC is used. > Where "direct specification" is the formatted string. > > The POSIX standard does not seem to explicitly state what happens in an > error case, besides[2]: > > The interpretation of these fields is unspecified if either field is > less than three bytes [..], > more than {TZNAME_MAX} bytes, or if they > contain characters other > than those specified.and[3] > > If TZ is absent from the environment, implementation-defined default > timezone information shall be used. > > [1]: https://man.openbsd.org/tzset > [2]: > > https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#= tag_08_03 > [2]: > https://pubs.opengroup.org/onlinepubs/9699919799/functions/tzset.html# > > > Cheers > --- > =F0=9F=99=8E=F0=9F=8F=BB=E2=80=8D=E2=99=82=EF=B8=8F jdoubleu > On 4/14/2022 9:23 PM, Jeff Johnston wrote: > > On Thu, Apr 14, 2022 at 12:31 PM Brian Inglis < > > Brian.Inglis@systematicsw.ab.ca> wrote: > > > >> I am still not hearing from where the requirement originates to set > >> UTC/GMT/etc or do anything other than leave everything as is. > >> Is this glibc behaviour, and why not /etc/localtime or /etc/timezone? > >> > >> > > It is glibc behaviour as I mentioned in my note. The following is also > > from man tzset > > > > If the TZ variable does not appear in the environment, the tznam= e > > vari=E2=80=90 > > able is initialized with the best approximation of local wa= ll > > clock > > time, as specified by the tzfile(5)-format file localtime found > in > > the > > system timezone directory (see below). (One also oft= en > > sees > > /etc/localtime used here, a symlink to the right file in the > > system > > timezone directory.) > > > > If the TZ variable does appear in the environment but its > value > > is > > empty or its value cannot be interpreted using any of the forma= ts > > spec=E2=80=90 > > ified below, Coordinated Universal Time (UTC) is used. > > > > Note about if its value is specified and cannot be interpreted using an= y > of > > the formats specified. > > If there is an error, then that clause would apply. In glibc's case, i= t > is > > less than 3 chars and invalid > > chars. In our case, exceeding the max limit would also apply. > > > > From glibc: tzset.c > > > > /* Clear out old state and reset to unnamed UTC. */ > > memset (tz_rules, '\0', sizeof tz_rules); > > tz_rules[0].name =3D tz_rules[1].name =3D ""; > > > > /* Get the standard timezone name. */ > > if (parse_tzname (&tz, 0) && parse_offset (&tz, 0)) > > > > If the parse_tzname fails or parsing the dst name fails, unnamed UTC is > > used. > > > > -- Jeff J. > > > > --00000000000039e9b605dda7d87f Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Modify-tzset_r.c-to-handle-errors.patch" Content-Disposition: attachment; filename="0001-Modify-tzset_r.c-to-handle-errors.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l2hz1d3m0 RnJvbSAwYjVlOTA1Njk2ZWMxMmU2NDA4ZTkzMzBlZjRlODdhYzZhNTc3NTFkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIEpvaG5zdG9uIDxqam9obnN0bkByZWRoYXQuY29tPgpE YXRlOiBXZWQsIDI3IEFwciAyMDIyIDE1OjI3OjAwIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gTW9k aWZ5IHR6c2V0X3IuYyB0byBoYW5kbGUgZXJyb3JzCgotIGNoYW5nZSBfX3R6c2V0X3Igc28gZXJy b3JzIGVuZCB1cCBzZXR0aW5nIHRoZSB0aW1lem9uZSB0bwogIHVubmFtZWQgVVRDCi0tLQogbmV3 bGliL2xpYmMvdGltZS90enNldF9yLmMgfCA1NiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygrKSwgMTYg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV3bGliL2xpYmMvdGltZS90enNldF9yLmMgYi9u ZXdsaWIvbGliYy90aW1lL3R6c2V0X3IuYwppbmRleCA5Y2IzMGIxLi40ZDRiYWZmIDEwMDY0NAot LS0gYS9uZXdsaWIvbGliYy90aW1lL3R6c2V0X3IuYworKysgYi9uZXdsaWIvbGliYy90aW1lL3R6 c2V0X3IuYwpAQCAtMjMsNiArMjMsNyBAQCBfdHpzZXRfdW5sb2NrZWRfciAoc3RydWN0IF9yZWVu dCAqcmVlbnRfcHRyKQogICB1bnNpZ25lZCBzaG9ydCBoaCwgbW0sIHNzLCBtLCB3LCBkOwogICBp bnQgc2lnbiwgbjsKICAgaW50IGksIGNoOworICBsb25nIG9mZnNldDAsIG9mZnNldDE7CiAgIF9f dHppbmZvX3R5cGUgKnR6ID0gX19nZXR0emluZm8gKCk7CiAKICAgaWYgKCh0emVudiA9IF9nZXRl bnZfciAocmVlbnRfcHRyLCAiVFoiKSkgPT0gTlVMTCkKQEAgLTQ0LDYgKzQ1LDEyIEBAIF90enNl dF91bmxvY2tlZF9yIChzdHJ1Y3QgX3JlZW50ICpyZWVudF9wdHIpCiAgIGlmIChwcmV2X3R6ZW52 ICE9IE5VTEwpCiAgICAgc3RyY3B5IChwcmV2X3R6ZW52LCB0emVudik7CiAKKyAgLyogZGVmYXVs dCB0byB1bm5hbWVkIFVUQyBpbiBjYXNlIG9mIGVycm9yICovCisgIF90aW1lem9uZSA9IDA7Cisg IF9kYXlsaWdodCA9IDA7CisgIF90em5hbWVbMF0gPSAiIjsKKyAgX3R6bmFtZVsxXSA9ICIiOwor CiAgIC8qIGlnbm9yZSBpbXBsZW1lbnRhdGlvbi1zcGVjaWZpYyBmb3JtYXQgc3BlY2lmaWVyICov CiAgIGlmICgqdHplbnYgPT0gJzonKQogICAgICsrdHplbnY7ICAKQEAgLTg1LDggKzkyLDcgQEAg X3R6c2V0X3VubG9ja2VkX3IgKHN0cnVjdCBfcmVlbnQgKnJlZW50X3B0cikKICAgaWYgKHNzY2Fu ZiAodHplbnYsICIlaHUlbjolaHUlbjolaHUlbiIsICZoaCwgJm4sICZtbSwgJm4sICZzcywgJm4p IDwgMSkKICAgICByZXR1cm47CiAgIAotICB0ei0+X190enJ1bGVbMF0ub2Zmc2V0ID0gc2lnbiAq IChzcyArIFNFQ1NQRVJNSU4gKiBtbSArIFNFQ1NQRVJIT1VSICogaGgpOwotICBfdHpuYW1lWzBd ID0gX190em5hbWVfc3RkOworICBvZmZzZXQwID0gc2lnbiAqIChzcyArIFNFQ1NQRVJNSU4gKiBt bSArIFNFQ1NQRVJIT1VSICogaGgpOwogICB0emVudiArPSBuOwogCiAgIC8qIGFsbG93IFBPU0lY IGFuZ2xlIGJyYWNrZXQgPCA+IHF1b3RlZCBzaWduZWQgYWxwaGFudW1lcmljIHR6IGFiYnIgZS5n LiA8TUVTWiswMzMwPiAqLwpAQCAtOTUsMTIgKzEwMSwxNiBAQCBfdHpzZXRfdW5sb2NrZWRfciAo c3RydWN0IF9yZWVudCAqcmVlbnRfcHRyKQogICAgICAgKyt0emVudjsKIAogICAgICAgLyogcXVp dCBpZiBubyBpdGVtcywgdG9vIGZldyBvciB0b28gbWFueSBjaGFycywgb3Igbm8gY2xvc2UgcXVv dGUgJz4nICovCi0gICAgICBpZiAoc3NjYW5mICh0emVudiwgIiUxMFstKzAtOUEtWmEtel0lbiIs IF9fdHpuYW1lX2RzdCwgJm4pIDw9IDAKLQkJfHwgbiA8IFRaTkFNRV9NSU4gfHwgVFpOQU1FX01B WCA8IG4gfHwgJz4nICE9IHR6ZW52W25dKQorICAgICAgaWYgKHNzY2FuZiAodHplbnYsICIlMTBb LSswLTlBLVphLXpdJW4iLCBfX3R6bmFtZV9kc3QsICZuKSA8PSAwICYmIHR6ZW52WzBdID09ICc+ JykKIAl7IC8qIE5vIGRzdCAqLwotCSAgX3R6bmFtZVsxXSA9IF90em5hbWVbMF07Ci0JICBfdGlt ZXpvbmUgPSB0ei0+X190enJ1bGVbMF0ub2Zmc2V0OwotCSAgX2RheWxpZ2h0ID0gMDsKKyAgICAg ICAgICBfdHpuYW1lWzBdID0gX190em5hbWVfc3RkOworICAgICAgICAgIF90em5hbWVbMV0gPSBf dHpuYW1lWzBdOworICAgICAgICAgIHR6LT5fX3R6cnVsZVswXS5vZmZzZXQgPSBvZmZzZXQwOwor ICAgICAgICAgIF90aW1lem9uZSA9IG9mZnNldDA7CisJICByZXR1cm47CisgICAgICAgIH0KKyAg ICAgIGVsc2UgaWYgKG4gPCBUWk5BTUVfTUlOIHx8IFRaTkFNRV9NQVggPCBuIHx8ICc+JyAhPSB0 emVudltuXSkKKwl7IC8qIGVycm9yICovCiAJICByZXR1cm47CiAJfQogCkBAIC0xMDksMTcgKzEx OSwyMCBAQCBfdHpzZXRfdW5sb2NrZWRfciAoc3RydWN0IF9yZWVudCAqcmVlbnRfcHRyKQogICBl bHNlCiAgICAgewogICAgICAgLyogYWxsb3cgUE9TSVggdW5xdW90ZWQgYWxwaGFiZXRpYyB0eiBh YmJyIGUuZy4gTUVTWiAqLwotICAgICAgaWYgKHNzY2FuZiAodHplbnYsICIlMTBbQS1aYS16XSVu IiwgX190em5hbWVfZHN0LCAmbikgPD0gMAotCQkJCXx8IG4gPCBUWk5BTUVfTUlOIHx8IFRaTkFN RV9NQVggPCBuKQorICAgICAgaWYgKHNzY2FuZiAodHplbnYsICIlMTBbQS1aYS16XSVuIiwgX190 em5hbWVfZHN0LCAmbikgPD0gMCkKIAl7IC8qIE5vIGRzdCAqLwotCSAgX3R6bmFtZVsxXSA9IF90 em5hbWVbMF07Ci0JICBfdGltZXpvbmUgPSB0ei0+X190enJ1bGVbMF0ub2Zmc2V0OwotCSAgX2Rh eWxpZ2h0ID0gMDsKKyAgICAgICAgICBfdHpuYW1lWzBdID0gX190em5hbWVfc3RkOworICAgICAg ICAgIF90em5hbWVbMV0gPSBfdHpuYW1lWzBdOworICAgICAgICAgIHR6LT5fX3R6cnVsZVswXS5v ZmZzZXQgPSBvZmZzZXQwOworICAgICAgICAgIF90aW1lem9uZSA9IG9mZnNldDA7CisJICByZXR1 cm47CisgICAgICAgIH0KKyAgICAgIGVsc2UgaWYgKG4gPCBUWk5BTUVfTUlOIHx8IFRaTkFNRV9N QVggPCBuKQorCXsgLyogZXJyb3IgKi8KIAkgIHJldHVybjsKIAl9CiAgICAgfQogCi0gIF90em5h bWVbMV0gPSBfX3R6bmFtZV9kc3Q7CiAgIHR6ZW52ICs9IG47CiAKICAgLyogb3RoZXJ3aXNlIHdl IGhhdmUgYSBkc3QgbmFtZSwgbG9vayBmb3IgdGhlIG9mZnNldCAqLwpAQCAtMTM4LDkgKzE1MSw5 IEBAIF90enNldF91bmxvY2tlZF9yIChzdHJ1Y3QgX3JlZW50ICpyZWVudF9wdHIpCiAgIAogICBu ICA9IDA7CiAgIGlmIChzc2NhbmYgKHR6ZW52LCAiJWh1JW46JWh1JW46JWh1JW4iLCAmaGgsICZu LCAmbW0sICZuLCAmc3MsICZuKSA8PSAwKQotICAgIHR6LT5fX3R6cnVsZVsxXS5vZmZzZXQgPSB0 ei0+X190enJ1bGVbMF0ub2Zmc2V0IC0gMzYwMDsKKyAgICBvZmZzZXQxID0gb2Zmc2V0MCAtIDM2 MDA7CiAgIGVsc2UKLSAgICB0ei0+X190enJ1bGVbMV0ub2Zmc2V0ID0gc2lnbiAqIChzcyArIFNF Q1NQRVJNSU4gKiBtbSArIFNFQ1NQRVJIT1VSICogaGgpOworICAgIG9mZnNldDEgPSBzaWduICog KHNzICsgU0VDU1BFUk1JTiAqIG1tICsgU0VDU1BFUkhPVVIgKiBoaCk7CiAKICAgdHplbnYgKz0g bjsKIApAQCAtMjExLDEzICsyMjQsMjQgQEAgX3R6c2V0X3VubG9ja2VkX3IgKHN0cnVjdCBfcmVl bnQgKnJlZW50X3B0cikKICAgICAgIG4gPSAwOwogICAgICAgCiAgICAgICBpZiAoKnR6ZW52ID09 ICcvJykKLQlzc2NhbmYgKHR6ZW52LCAiLyVodSVuOiVodSVuOiVodSVuIiwgJmhoLCAmbiwgJm1t LCAmbiwgJnNzLCAmbik7CisJaWYgKHNzY2FuZiAodHplbnYsICIvJWh1JW46JWh1JW46JWh1JW4i LCAmaGgsICZuLCAmbW0sICZuLCAmc3MsICZuKSA8PSAwKQorCSAgeworCSAgICAvKiBlcnJvciBp biB0aW1lIGZvcm1hdCwgcmVzdG9yZSB0eiBydWxlcyB0byBkZWZhdWx0IGFuZCByZXR1cm4gKi8K KwkgICAgc3RydWN0IF9fdHpydWxlX3N0cnVjdCBkZWZhdWx0X3R6cnVsZSA9IHsnSicsIDAsIDAs IDAsIDAsICh0aW1lX3QpMCwgMEwgfTsKKwkgICAgdHotPl9fdHpydWxlWzBdID0gZGVmYXVsdF90 enJ1bGU7CisJICAgIHR6LT5fX3R6cnVsZVsxXSA9IGRlZmF1bHRfdHpydWxlOworICAgICAgICAg ICAgcmV0dXJuOworICAgICAgICAgIH0KIAogICAgICAgdHotPl9fdHpydWxlW2ldLnMgPSBzcyAr IFNFQ1NQRVJNSU4gKiBtbSArIFNFQ1NQRVJIT1VSICAqIGhoOwogICAgICAgCiAgICAgICB0emVu diArPSBuOwogICAgIH0KIAorICB0ei0+X190enJ1bGVbMF0ub2Zmc2V0ID0gb2Zmc2V0MDsKKyAg dHotPl9fdHpydWxlWzFdLm9mZnNldCA9IG9mZnNldDE7CisgIF90em5hbWVbMF0gPSBfX3R6bmFt ZV9zdGQ7CisgIF90em5hbWVbMV0gPSBfX3R6bmFtZV9kc3Q7CiAgIF9fdHpjYWxjX2xpbWl0cyAo dHotPl9fdHp5ZWFyKTsKICAgX3RpbWV6b25lID0gdHotPl9fdHpydWxlWzBdLm9mZnNldDsgIAog ICBfZGF5bGlnaHQgPSB0ei0+X190enJ1bGVbMF0ub2Zmc2V0ICE9IHR6LT5fX3R6cnVsZVsxXS5v ZmZzZXQ7Ci0tIAoxLjguMy4xCgo= --00000000000039e9b605dda7d87f--