From nobody Tue Jan 24 05:43:17 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4P1G913CFkz3bNKm; Tue, 24 Jan 2023 05:43:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4P1G912cPRz4TQf; Tue, 24 Jan 2023 05:43:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674538997; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6SXNF2CoP4/fkZjf6ymqu95GEFtu3Bg1SXRaW4kWixU=; b=hU0mXJfbnIujZWYOZd0bIGg7OPVHpf8ffuQTmfoloXHu19/0NoffedosA+s1BQjkUXnyxT CstxyWqA3Pz9s86vuZnJHjCbFOOfW/gUwtXpp1Fm6aX/yD5VzalxExWgbv5dgox/xocXNN Y5BpIC8L587bWjISIb1sNsaKviP6QR7sid/tZ8sX2J1ojHjVIeKTYUR+/9fO0J8B37ncQR a8Deu400BdUAdMeX1q2AmqkM/aF9b1Bqe7QFhYGKjtXaWAxoVwUU8MzgBIakBojRH1nv0A nJSZ92ue11XuHZPS3OdH94JcH60mEGOVCWzSTQLlaiZs6XUEbShW5QoD5f0J+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674538997; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6SXNF2CoP4/fkZjf6ymqu95GEFtu3Bg1SXRaW4kWixU=; b=fmx9UAUe+bfZchG2PU9Rq5ROInGfZ0tn0XvJsNxrAryowds7Nn8xPjVZlIT0znxMRTx2bx QKQEvPar1QA45jNqhmQrXY2fIWD2Q6Hg4QZFYcSSKj7jZgNPUqgrOtB23uRY6Q6LE9DE4c Vvrdj4fiN98s4a/ZL4oMoB+ifM4IHfFU3OjRUGZmJg/iY889aXtci6IGq8wjQNuB0VTAH9 vJWVShb7Sa+sh+spv4naABm1+xGV7c8/QgoYguQg8IRfWas3V3F91tTkyo3oBDCBf+Ss20 zvWMORMVnAmzUay6yUxqR8EE9ra+QV2ADQzr4CpJFE3atAthHtHKUgRxzLY/rA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674538997; a=rsa-sha256; cv=none; b=Sw4o+PYeAeDYerED8e3dmWGbwOu0GkKJh1c3G8tBOMTwxXRROt3B5hGVMAEbHb9yp0JEa9 omKZOtfH6U/wcdc4QLmY84Kl+hFFiMlfou0SWdT8zFuoTbWnq3HJxpc4CP6Udxpg1w4knU aQmXQD+mtN0t/gW0dhTCL+t2Rn1E25JoFNemYykNhfTZfWsrl2GJDbTj85TOW97REG89C2 rxTPgtJuSV0hUS5xMfhPtIKXn+ajgi4SwDqRRQnlMxTYayysTaXPK/vNSZWg8LoXUYgpNf HuOGnAgyollzDzhQFbcUBboAPH/LtFRUALRAN2L3aT0ZJbUyrYzo5Hg97x2LWQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4P1G911L6hzyHQ; Tue, 24 Jan 2023 05:43:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30O5hHFY061863; Tue, 24 Jan 2023 05:43:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30O5hHQY061862; Tue, 24 Jan 2023 05:43:17 GMT (envelope-from git) Date: Tue, 24 Jan 2023 05:43:17 GMT Message-Id: <202301240543.30O5hHQY061862@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: a8b6a13b0aa3 - stable/13 - diff: Don't (ab)use sprintf() as a kind of strcat(). List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: a8b6a13b0aa3408a7793dad22ad0193a2c32477f Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=a8b6a13b0aa3408a7793dad22ad0193a2c32477f commit a8b6a13b0aa3408a7793dad22ad0193a2c32477f Author: John Baldwin AuthorDate: 2022-11-16 03:17:36 +0000 Commit: John Baldwin CommitDate: 2023-01-24 05:12:44 +0000 diff: Don't (ab)use sprintf() as a kind of strcat(). Previously print_header() used sprintf() of a buffer to itself as a kind of string builder but without checking for overflows. This raised -Wformat-truncation and -Wrestrict warnings in GCC. Instead, just conditionally print the new timestamp fields after the initial strftime()-formatted string. While here, use sizeof(buf) with strftime() rather than a magic number. Reviewed by: bapt Differential Revision: https://reviews.freebsd.org/D36814 (cherry picked from commit 6100374ccf2644d3fd233bde8b8f4e73d9953c30) --- usr.bin/diff/diffreg.c | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/usr.bin/diff/diffreg.c b/usr.bin/diff/diffreg.c index 94998a364715..800f489e510a 100644 --- a/usr.bin/diff/diffreg.c +++ b/usr.bin/diff/diffreg.c @@ -1655,10 +1655,7 @@ static void print_header(const char *file1, const char *file2) { const char *time_format; - char buf1[256]; - char buf2[256]; - char end1[10]; - char end2[10]; + char buf[256]; struct tm tm1, tm2, *tm_ptr1, *tm_ptr2; int nsec1 = stb1.st_mtim.tv_nsec; int nsec2 = stb2.st_mtim.tv_nsec; @@ -1669,26 +1666,32 @@ print_header(const char *file1, const char *file2) time_format = "%c"; tm_ptr1 = localtime_r(&stb1.st_mtime, &tm1); tm_ptr2 = localtime_r(&stb2.st_mtime, &tm2); - strftime(buf1, 256, time_format, tm_ptr1); - strftime(buf2, 256, time_format, tm_ptr2); - if (!cflag) { - strftime(end1, 10, "%z", tm_ptr1); - strftime(end2, 10, "%z", tm_ptr2); - sprintf(buf1, "%s.%.9d %s", buf1, nsec1, end1); - sprintf(buf2, "%s.%.9d %s", buf2, nsec2, end2); - } if (label[0] != NULL) printf("%s %s\n", diff_format == D_CONTEXT ? "***" : "---", label[0]); - else - printf("%s %s\t%s\n", diff_format == D_CONTEXT ? "***" : "---", - file1, buf1); + else { + strftime(buf, sizeof(buf), time_format, tm_ptr1); + printf("%s %s\t%s", diff_format == D_CONTEXT ? "***" : "---", + file1, buf); + if (!cflag) { + strftime(buf, sizeof(buf), "%z", tm_ptr1); + printf(".%.9d %s", nsec1, buf); + } + printf("\n"); + } if (label[1] != NULL) printf("%s %s\n", diff_format == D_CONTEXT ? "---" : "+++", label[1]); - else - printf("%s %s\t%s\n", diff_format == D_CONTEXT ? "---" : "+++", - file2, buf2); + else { + strftime(buf, sizeof(buf), time_format, tm_ptr2); + printf("%s %s\t%s", diff_format == D_CONTEXT ? "---" : "+++", + file2, buf); + if (!cflag) { + strftime(buf, sizeof(buf), "%z", tm_ptr2); + printf(".%.9d %s", nsec2, buf); + } + printf("\n"); + } } /*