From patchwork Wed Oct 6 16:25:45 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Siddhesh Poyarekar X-Patchwork-Id: 45930 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 061633857814 for ; Wed, 6 Oct 2021 16:27:11 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 061633857814 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1633537631; bh=pLiI7kfLPx54MJxA9ACCzDYPScVPeLD4drjeMwC6Qb8=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=Y6kpTzQHVK7bYnNkJYMqZYn9Xr2Ru5HfjERo5h6Lw0u4fCwLT9L7rERFd141i8U06 4JW13yAODBZwYGf8B66QUcA4O7rqkO9vvrGJleh7Lp6cl+CgatQULsKOObG+3sUZbK ArlvVuNyg9Ro0O+3EO7HKTkTQcOw5S/dVtkG9aCA= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from cyan.elm.relay.mailchannels.net (cyan.elm.relay.mailchannels.net [23.83.212.47]) by sourceware.org (Postfix) with ESMTPS id E6BFC385C401 for ; Wed, 6 Oct 2021 16:26:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E6BFC385C401 X-Sender-Id: dreamhost|x-authsender|siddhesh@gotplt.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 2B2D45C15AA for ; Wed, 6 Oct 2021 16:26:02 +0000 (UTC) Received: from pdx1-sub0-mail-a65.g.dreamhost.com (unknown [127.0.0.6]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 606EE5C1296 for ; Wed, 6 Oct 2021 16:26:00 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|siddhesh@gotplt.org Received: from pdx1-sub0-mail-a65.g.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384) by 100.112.83.63 (trex/6.4.3); Wed, 06 Oct 2021 16:26:01 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|siddhesh@gotplt.org X-MailChannels-Auth-Id: dreamhost X-Absorbed-Cold: 45fcd8bd06496d34_1633537561542_3441625204 X-MC-Loop-Signature: 1633537561542:3421832968 X-MC-Ingress-Time: 1633537561542 Received: from pdx1-sub0-mail-a65.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a65.g.dreamhost.com (Postfix) with ESMTP id 023DF7FA80 for ; Wed, 6 Oct 2021 09:25:59 -0700 (PDT) Received: from rhbox.redhat.com (unknown [1.186.223.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: siddhesh@gotplt.org) by pdx1-sub0-mail-a65.g.dreamhost.com (Postfix) with ESMTPSA id 76DF880463 for ; Wed, 6 Oct 2021 09:25:56 -0700 (PDT) X-DH-BACKEND: pdx1-sub0-mail-a65 To: libc-alpha@sourceware.org Subject: [PATCH] support: Also return fd when it is 0 Date: Wed, 6 Oct 2021 21:55:45 +0530 Message-Id: <20211006162545.12778-1-siddhesh@sourceware.org> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 X-Spam-Status: No, score=-3491.0 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_NONE, KAM_DMARC_STATUS, KAM_NUMSUBJECT, RCVD_IN_ABUSEAT, RCVD_IN_BL_SPAMCOP_NET, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NEUTRAL, 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-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Siddhesh Poyarekar via Libc-alpha From: Siddhesh Poyarekar Reply-To: Siddhesh Poyarekar Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" The fd validity check in open_dev_null checks if fd > 0, which would lead to a leaked fd if it is == 0. I also went ahead and adjusted formatting of the file since it was off. Signed-off-by: Siddhesh Poyarekar Reviewed-by: Adhemerval Zanella --- - I own copyright for my submissions to glibc, so using S-o-b - This is a trivial fix, so I'll push it if there are no objections. support/support-open-dev-null-range.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/support/support-open-dev-null-range.c b/support/support-open-dev-null-range.c index 80d9dba504..66a8504105 100644 --- a/support/support-open-dev-null-range.c +++ b/support/support-open-dev-null-range.c @@ -40,16 +40,16 @@ increase_nofile (void) static int open_dev_null (int flags, mode_t mode) { - int fd = open64 ("/dev/null", flags, mode); - if (fd > 0) - return fd; + int fd = open64 ("/dev/null", flags, mode); + if (fd >= 0) + return fd; - if (fd < 0 && errno != EMFILE) - FAIL_EXIT1 ("open64 (\"/dev/null\", 0x%x, 0%o): %m", flags, mode); + if (fd < 0 && errno != EMFILE) + FAIL_EXIT1 ("open64 (\"/dev/null\", 0x%x, 0%o): %m", flags, mode); - increase_nofile (); + increase_nofile (); - return xopen ("/dev/null", flags, mode); + return xopen ("/dev/null", flags, mode); } struct range