From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2 autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 17407 invoked from network); 19 Dec 2022 17:55:38 -0000 Received: from second.openwall.net (193.110.157.125) by inbox.vuxu.org with ESMTPUTF8; 19 Dec 2022 17:55:38 -0000 Received: (qmail 25738 invoked by uid 550); 19 Dec 2022 17:55:34 -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 25701 invoked from network); 19 Dec 2022 17:55:33 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=landley-net.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:subject:from:content-language:to :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=NQy4NvzlvvtvX6hV2/x9tRInxRSDPSv0mevvKJXCGaA=; b=GlX3L97nXoXppGoY8ehKHO/gD18SDLbgAKjOrsVWUN+eJJQgsQk9UVH8iiR7O1fXMg Br4c4CyeiyLu9yxKXdSt2/5Ien5Z9oQCwM8TzO9anCM0Qgytu9A68RrA4OSq0WfUflpO wMWO6PSopDlI8FLRMFLwHj8ACUrDwH8v3YVjRTboez/bGx6VcAS1WIEpmHeFq4Y6Irpv m2WyUQtEvAeVweaUx4QohRLqHkCYXrNFlfAEPPj1flF3OIgwh03DmBDOVKeCmNNCoXF8 xjo8pLxkozVUUNdKxrtmFfXKgRbrvqCvG0qtptncbeLZ7Wa3XeEdMyPCHr8phIGNLtL1 B+fQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:subject:from:content-language:to :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=NQy4NvzlvvtvX6hV2/x9tRInxRSDPSv0mevvKJXCGaA=; b=uwPF+CQTw9q3ywz75Gq9PXZDOHe90DGGCvOba2GBqVX1AKTQjVQZ37q8LCfWSBi6O2 4/tSGpvEBb/Nrq6DQB3IdA9OnVTldQx8wncIdVn7nS5mSclGlUZAJVA/54CXGW9iCqZr WnWWTqxHhcPjwvUVicUTCNeG91M4xmJOx3cT/gWJw4DEgWfnp/dQGTRPrdgOyQvKyMnq zYkD4gd6hnN36/BDiqeF8n8yShKG8BHPpxJuZEB2jzwWgvBFB39tvMqL6LsHxdIznynO vyvHpUv08DlZsHMM+y8sakDDViUdZGnaZYDBrKfvzERd8y95p1aISggDPmHCbOZEh4hS +imQ== X-Gm-Message-State: ANoB5plnbKh/EDb+qvLbbiBoPoy8yN/zptd9zTN4syOCbg5h6NGfLpv/ joemxCiHxgISmz9idIFsMhDirTM7oIb0nT++ X-Google-Smtp-Source: AA0mqf70p9fitDyXEP8Z+VO+wiQA5a/5Yk7QJPmp1nxk+eKKMYADoQktiUeVZMxztFSd86iBANTRGQ== X-Received: by 2002:a9d:1af:0:b0:671:e5c1:219c with SMTP id e44-20020a9d01af000000b00671e5c1219cmr10571210ote.21.1671472520857; Mon, 19 Dec 2022 09:55:20 -0800 (PST) Message-ID: Date: Mon, 19 Dec 2022 12:06:38 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.0 To: musl@lists.openwall.com Content-Language: en-US From: Rob Landley Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: [musl] strftime trailing % In glibc and bionic a trailing % in strftime() acts like printf, I.E. it's a literal "%". But in musl, it's an error that returns length 0. Test program: #include #include int main(int argc, char *argv[]) { char buf[256]; struct tm tm = {0}; strftime(buf, sizeof(buf), "hello %", &tm); return printf("%s\n", buf); } The fix looks simple enough, although I haven't built a toolchain with it yet: --- a/src/time/strftime.c +++ b/src/time/strftime.c @@ -225,7 +225,7 @@ size_t __strftime_l(char *restrict s, size_t n, const char *restrict f, const st s[l] = 0; return l; } - if (*f != '%') { + if (*f != '%' || !f[1]) { s[l++] = *f; continue; } This is breaking a toybox test for the "date" command. Rob