From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: from second.openwall.net (second.openwall.net [193.110.157.125]) by inbox.vuxu.org (Postfix) with SMTP id 8D92422202 for ; Sat, 23 Mar 2024 07:42:07 +0100 (CET) Received: (qmail 23604 invoked by uid 550); 23 Mar 2024 06:37:26 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 23566 invoked from network); 23 Mar 2024 06:37:26 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1711176111; x=1711780911; i=nullplan@gmx.net; bh=1qFlmFj1+b6Wq+svtLDe44CMVCh35MlnaIgUMANySOQ=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:References: In-Reply-To; b=BRhi82zgCbZGBuS8wz5LFX3nX3Pwv0W0fYjHFmFBfTMKeFvUsH/djuyCd9PNFDC5 xoQNmK+1aorFiVrEYH3h77hhe+hEawjdKpxoY1coVhIuEihBghw6z0d3Uqh72pUYd eh98Gvk6C/rzW2NhuXTRn/eBdeDlsLeRY8vN+QxDsOFUuExMsSVwrZ6wHhy/Jmyyg S5sCqZPdTpklmOnqLGW7C8DVrGnSWXtbNqFGq+LsALc2ajilu49pVDvd9RwOww/zD AbURgiWc9wsvPGkdITPlCzhmNvraT3w9QvOca8XSEkpBrlYkSMu40fzWs6t0nr2wk x2K/PE5ByWXd12NNTw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Date: Sat, 23 Mar 2024 07:41:50 +0100 From: Markus Wichmann To: musl@lists.openwall.com Cc: Alexander Weps Message-ID: References: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Wi4wq/PanNdgmNSu" Content-Disposition: inline In-Reply-To: X-Provags-ID: V03:K1:9+6FBoBLdAgNRF4a58S9lVU1q0lIXvOveljZibgX2WdZe38OCu/ 2xJh/VHLRPQ8yREKCIO1LxiV7yDnvdDmZgVNcCKJh28l8ebYhrdVzMS6S4Bq7GjcTGyDvfv 9+Fq1W1vq8jzQZPcbtBkFqkXDVpyvU13BfDkULPnayGfcP0puYaD460+YpzGHZ1I/jSwhZN Giasamc06oGlBmWz43DUw== UI-OutboundReport: notjunk:1;M01:P0:htlNo6HwfY4=;sF9yXDljL3ynZGAPIOWIK8g5tgJ Ut9nINSxOSef52p8PeMV9hlV3dn28jA3/bGkFuFB0U+y1FPRQrWiMCCaHgooUwbZcaONGhSZ5 uLEajhFb4GR2rz8EV82RS47A7n7FUY6B1xKQP8Ga89lhtQPxGzC81p2mWswtn6xFr/pBjc37G JT9cbB6Gi/KvoswxCppJ4wlvnCUTiIB7kfrCkviXhleEbiqu+3Xx/CCFUM0hHVtLTX3VChWLx 61yVp6zSRa/7ykKFB+VYVDRzuBXHRdUu9Uvpzx3NRKsaG6MdaSa2mWW+1gExaPHgXiDUoAnsT sge50NN9l9osvUWr+lu0aedrk4X9Ypcf4+8NJzcdSa4gE2xnx4ru2Z4xk1jAFhRT6+BarMXpj exLu4xEco4ewb8ieVrTmzkk9bXgRcxVimB7AqWUZhipDR9yHfQIBH0sWt07eUz6D/ao1m0aby gX3iwg1O2sC2apB+gGGjuRBD6MPWNpfpq5pz+7i3USxmGQkQnmW3AGa5o1mPXpeUzTVOu4BoL sQP1pA+WzKO4WD4XFHDJzvOVICQ7/ZkA1UQuDCJvyt2uCbxk5ZkZwUG44hNJVGiS7kKXRuZIl JYCetrdiSkDwVvUdD/WEUnoGbtqrU4L3K5DsICx/H8vOcT+nmVxISgEUaXmOIfTcVkKIkwaBr cNxNWu9C7QOf28cLUjN2irLlHx+nx1dAvPhytwFt1lUmhfsd5T5ZX6qm0nPxGnaEiLw9TxL4w yPVMkQENu14h1cwccUcSiFPcsyeukgfoc5mwGADw9D+i+BO3hWtLJ4kLg86sd3FRP2ESNYN1+ O43iRZVLx/p0/kelQgOD3clZ7y/5mT2aM5Sl9VfEYSLfyww13AFfXBJ/hsDY15Ndjc Subject: Re: [musl] Broken mktime calculations when crossing DST boundary --Wi4wq/PanNdgmNSu Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi, can you send a reproducer? I have written the attached program, and cannot see the issue. I have tried both the zoneinfo file and the POSIX TZ. $ TZ=Europe/Prague ./foo 2024 3 31 1 58 00 before: 2024-03-31 01:58:00 CET after: 2024-03-31 03:00:00 CEST $ TZ=CET-1CEST,M3.5.0,M10.5.0/3 ./foo 2024 3 31 1 58 00 before: 2024-03-31 01:58:00 CET after: 2024-03-31 03:00:00 CEST What are you doing different? Ciao, Markus --Wi4wq/PanNdgmNSu Content-Type: text/x-csrc; charset=us-ascii Content-Disposition: attachment; filename="foo.c" #include #include #include int main(int argc, char *argv[]) { time_t t; struct tm tm = {0}; char buf[64]; if (argc < 7) { fprintf(stderr, "Usage: %s year month day hour minute second\n"); return EXIT_FAILURE; } tm.tm_year = atoi(argv[1]) - 1900; tm.tm_mon = atoi(argv[2]) - 1; tm.tm_mday = atoi(argv[3]); tm.tm_hour = atoi(argv[4]); tm.tm_min = atoi(argv[5]); tm.tm_sec = atoi(argv[6]); mktime(&tm); strftime(buf, sizeof buf, "%F %T %Z", &tm); printf("before: %s\n", buf); tm.tm_min += 2; mktime(&tm); strftime(buf, sizeof buf, "%F %T %Z", &tm); printf("after: %s\n", buf); return 0; } --Wi4wq/PanNdgmNSu--