From nobody Sat Mar 19 13:17:34 2022 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 812AE1A32C7D; Sat, 19 Mar 2022 13:17:34 +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 4KLLyk34YHz57CR; Sat, 19 Mar 2022 13:17:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1647695854; 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=ZAbH9iQTyvalrEdFTjEuX77ElmClGf1esT3216Di0do=; b=oqttYYfrDiOqpj1Vqfv0Bu6jgyPewcy+wawtDWJZtwrPWsoGgmPvY9veTgTV+0Go/b/9kP 0p/BFEUsMKlt8R33IyxTcdSGVr5sxti8KKEqHqKmohFGhgSSlj4osCH+kkkoZ829MMziTW /lOfTE8aSO3rvTTtLouTnTMVF3NXysElfY9OFNrkLU4tf5BAIzAIIzOaF1ifI56r1y4eIW 9yTCxYVacg+4lhNrAVH2aiAGrEBAvTc25i9dlxRdOGvMpUHegDv6h9UABo2DQ8x1BQu7lv YaedrVF82aPnZmUZjp3E72rnGZEOX1XHt/KrgR7wBYofuKSjEc03YxylBRvdCg== 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 45C5F13A4B; Sat, 19 Mar 2022 13:17:34 +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 22JDHYsM028154; Sat, 19 Mar 2022 13:17:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 22JDHYFB028153; Sat, 19 Mar 2022 13:17:34 GMT (envelope-from git) Date: Sat, 19 Mar 2022 13:17:34 GMT Message-Id: <202203191317.22JDHYFB028153@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mariusz Zaborski Subject: git: e7023af434e2 - stable/13 - touch: don't leak descriptor if fstat(2) fails 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: oshogbo X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: e7023af434e2035d6359ca0b5108a6f3e5caf9c4 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1647695854; 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=ZAbH9iQTyvalrEdFTjEuX77ElmClGf1esT3216Di0do=; b=Z/YGTVcoqop1l8GGqA7e4cEORalIaQ503+yk8E/+xg9BFNoaIaRLBIENSmre/qgcHnvsLu aXbKesqo+yMR8A8sMkvlDNXcCdoOWLX4AGs722hZ21BEE4Sqn18qQSiT4n4Lt2wPBFhv// igBovRGVx0wTk26Y+gCHURRCwJcCAiwgpqYAEHSO2yktKy7uOiBwJItPppVTWxH4yQC26o VVcEh1I38sFJZ2bQSPdeRzrh0RKFpy67MDjexQ9gz2qlXAYaypqynRbxL/CTmu9gujSzEh XmGXAGKwkAMI4e3iHuk0kYXIDMA/DSUFnjnYNJ7XrPTM4T8ojj1jLk/3mVBckg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1647695854; a=rsa-sha256; cv=none; b=STN+By1rzzoPVgtW/tqPALPwr9azy1yZrJUp2o27STsEGZaNgCFA/H9vBvv7KwNaPmtDqN Lrg/CAz3t2B2JP++/y5O6bGv/DQbVfZwY3R8uC937vHJw/w2VARO3edx2j0JsuuQSGgLhP X7lh+m6Z4YBm7tZaBGZEZf1VUCGUBt6hJKEpoCIJetyDzwCCaos6oKj8HlwJzmYKE4gT/v 8UCRy0l5cMXGGXEWxoQlOzL3bx5lezsLerrW/4C3eigzZEqoM38RKN2l1nKBGl8TUqOm0M 4xYM0hCgAeBIFoOvmcb2EhuhypkFRGTIcDp4rdze+h4KzKm4Pid4xsuBC3cCrA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by oshogbo: URL: https://cgit.FreeBSD.org/src/commit/?id=e7023af434e2035d6359ca0b5108a6f3e5caf9c4 commit e7023af434e2035d6359ca0b5108a6f3e5caf9c4 Author: Mariusz Zaborski AuthorDate: 2022-03-12 10:38:12 +0000 Commit: Mariusz Zaborski CommitDate: 2022-03-19 13:16:29 +0000 touch: don't leak descriptor if fstat(2) fails If fstat(2) fails the close(2) won't be called, which will leak the file descriptor. The idea was borrowed from OpenBSD, where similar patch was applied for futimens(2). MFC after: 1 week (cherry picked from commit cb54c500d0e1a2c52270b15c6db6a88ca3feb86a) --- usr.bin/touch/touch.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/usr.bin/touch/touch.c b/usr.bin/touch/touch.c index 62f77d46e429..1594eacb67d0 100644 --- a/usr.bin/touch/touch.c +++ b/usr.bin/touch/touch.c @@ -177,11 +177,19 @@ main(int argc, char *argv[]) /* Create the file. */ fd = open(*argv, O_WRONLY | O_CREAT, DEFFILEMODE); - if (fd == -1 || fstat(fd, &sb) || close(fd)) { + if (fd == -1) { rval = 1; warn("%s", *argv); continue; } + if (fstat(fd, &sb) < 0) { + warn("%s", *argv); + rval = 1; + } + if (close(fd) < 0) { + warn("%s", *argv); + rval = 1; + } /* If using the current time, we're done. */ if (!timeset)