From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2094.outbound.protection.outlook.com [40.107.236.94]) by sourceware.org (Postfix) with ESMTPS id 7FDAD3857C61 for ; Mon, 8 Feb 2021 17:39:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 7FDAD3857C61 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EilxU0mkR5oextvYLt6csg7ocLPVLSOmprwl5wzRxzkssE/YHfXnh9GcPVavtcbur/Nl8YetV+jE0Z9XnELq0slVTJNlH9nr47+wh61sMjpR+FffwlK5s168D1OomBDrZji9OBu59v8ye8k6nOBrSE58M62Kl+7w6XxolsVxlXCgezIcn7uMce2tp7q5a8EvhqhorxXBTNEgvqV27k4pBKLgKT+xeKz+sWItiv4qzf9cCmL4DUaDlSp4XZXErLw548IvUtw6gXd5It3vrffzIbc1hsex8TSlqAcPEzmt4kDqf26wliwo7vTRxEM0UBd1lLblM71VBvZL65eJC1lvmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=is2no2mGtyfItzSEGeE+FhsmWS1dHO+7jYwj+bQis+o=; b=bo1tvXImpadY3jOydqCkyA+iEoosJFIBjDWUyXAAxM2ydWZvLvQ86Jh68THtscn9+5hP45Iab9pQkyYi4nXSmrHKzvZfMfHBUAezDp0OrG795l4838tic1nC0RIdV7raMgZk5NJQcxXpL7AEKmj9WR//PxFRbMaK5PUGMwTMhSkRJ5raTKDUnVlb6BXjd3N534hLHVvJlO5WqCXAsdRVC5quL4qPpnn388V14+td8CwcYLVXhP1A4hWoQenmZtkj01OP2ZSXKJRBmuPg0faCtSbKpGHfyBss6/LdHPN7zefgJZ2D6plMPh6lSnbAFradmj1/4+D+azTjUB8a/DAQPA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cornell.edu; dmarc=pass action=none header.from=cornell.edu; dkim=pass header.d=cornell.edu; arc=none Received: from BN7PR04MB4388.namprd04.prod.outlook.com (2603:10b6:406:f8::19) by BN8PR04MB5474.namprd04.prod.outlook.com (2603:10b6:408:5a::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3825.30; Mon, 8 Feb 2021 17:39:37 +0000 Received: from BN7PR04MB4388.namprd04.prod.outlook.com ([fe80::f071:e174:ef12:375c]) by BN7PR04MB4388.namprd04.prod.outlook.com ([fe80::f071:e174:ef12:375c%6]) with mapi id 15.20.3825.030; Mon, 8 Feb 2021 17:39:37 +0000 To: cygwin-devel From: Ken Brown Subject: Potential handle leaks in dup_worker Message-ID: <2fef1107-005d-9a44-fd4a-79fa5904d436@cornell.edu> Date: Mon, 8 Feb 2021 12:39:26 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [65.112.130.200] X-ClientProxiedBy: BN6PR11CA0007.namprd11.prod.outlook.com (2603:10b6:405:2::17) To BN7PR04MB4388.namprd04.prod.outlook.com (2603:10b6:406:f8::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [10.13.22.4] (65.112.130.200) by BN6PR11CA0007.namprd11.prod.outlook.com (2603:10b6:405:2::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3825.17 via Frontend Transport; Mon, 8 Feb 2021 17:39:36 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a544adfa-6d2d-47a2-448a-08d8cc58811a X-MS-TrafficTypeDiagnostic: BN8PR04MB5474: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pFJVv9U6w1xCaX24uFsgzF2qS6EGrUnR+tWRLMZEvvi0a3eYx1wI/fVRZ/xkfkmpA0VV/nzjL+UBaV8HCvFflNMTPkQxdG41t7Qgqu0t4zT5oT9WaqaLjRmG8uwRbdqXhHozra24Ajen01vEttkP9oqZFT1NVj8uy7g4xSJou4fWBhHz76YPdeEPk/nuYvv7FI02pcFRqmnDSlFI4+OysMrKtyagauI8ZW3dY99/A+F4xqfzlUwoiT8URHw1nIbgO9JZ4qenNmzptibg/sMXqrbNbkAR1FwvbBMsuaX0KhnR/0bl41qcmrAeHFC1Nc6yGblUHJCQaRUNgVceqZvwu7Y+htCBr7d99rlx3FM+3DBTEGTASbYJFUxh8XFNY3OnPz+1mg8V/LX7V3/pqtkHDxs3cF8ASPnQHLNokFO0VXNivaleQE4eZhYxXOdgEeCk8icb4vy8NxBPzzFoJu594yXC20jzql0luh37GS1ZFuOgOhbu9vkyXkLjX4hxuuCudBCRE94VPdJdhKIto/VcfRcuIpLnyunlFY/Pe5zpIAWz2yz/pRC8iTVhr2V4ndVR1ApO6vI+aCdklr0yMfzW4rGYJOeIEv3KZWLONAvaO4o= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN7PR04MB4388.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(39860400002)(136003)(376002)(346002)(396003)(83380400001)(2906002)(31696002)(8936002)(52116002)(86362001)(2616005)(186003)(26005)(956004)(16526019)(6916009)(5660300002)(75432002)(6666004)(6486002)(66946007)(31686004)(478600001)(66556008)(66476007)(16576012)(786003)(316002)(36756003)(8676002)(43740500002)(45980500001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?Windows-1252?Q?KCzhopkQp53h3ED16J9PzUe/ORo2LkfMOygS2zlo2iVb28dk3uq3m+4T?= =?Windows-1252?Q?MQk5FoXxpeWlz2d6Xq3t/7En8bBdI7woacv+QRUg9otK05gsTYgqGeaG?= =?Windows-1252?Q?W3p0nkXnqz7RwhDydHBMXbI20cjNYmiWHMIxauWh0y6PDl1cbYfGJns5?= =?Windows-1252?Q?v8qPn31LDDYuWy/zm4JauP605ZFEWD3Xs2xvmEQerbumwBa9q5+8lbKj?= =?Windows-1252?Q?kL8nxaYCc75vk3Wgfy3H78E9LP27bbB7IMBpPCeenYcf/wQ+mws6tYnT?= =?Windows-1252?Q?8egeJejgFsC5xDSHLV5k0EpIeBGubNaWHtxxyJKhnk271DSvQAvaaYJi?= =?Windows-1252?Q?JR5eIz6mdqvJxEhPTjdeaUxbFE4rVdDw0aadqcUW2Y/Bwd2S9cmBWnN/?= =?Windows-1252?Q?QpnLXiPt4qZcniNMjbDI0MZFjCJuXnsvyiZWWlt/s5bZBMXG0xX0igd4?= =?Windows-1252?Q?pFLuyS0zXs8KiNC2qKBMfa2qC0Aa7RToPjORrwSPt/aDSEnH1z/I1gsY?= =?Windows-1252?Q?XziiUp7uKxH3LHs1vNhZis4WH66nT8/YXszJV8Fl3aW1KDY0V7GpyXLO?= =?Windows-1252?Q?ZzW3xc8akL24eSyTPJ0hEFmsoBf3iPiEAUEh6GCPhTrvbnHmcRo2lRpe?= =?Windows-1252?Q?W4N6zEInnLfADGVKyNbcLHt1AWg1DBCxTJn9ogYnieBobDRqZM8mw76q?= =?Windows-1252?Q?5/K768N75EW3vZUl6pIAnQwu8GeQLqqu7naQTMI/7B2o1Vr8Ves+7X8D?= =?Windows-1252?Q?2JzsqOs3/k3b+0rvLQP/4elmYFjzf8eCn1rzzL7HzPOBKuSz55//rZ9i?= =?Windows-1252?Q?yvaAgm1T4X+5jDlamwvn5DwQy7jGY/B6gUIDhAaSCFI9oASIPcm9nz2Z?= =?Windows-1252?Q?hew7zeFibHuMIj3IpfyiELhSeNc0BeAfzkpj4PIWi83if8BgLclATXgb?= =?Windows-1252?Q?GE0KWmwaOHwdtb3V5/eETW6/kjLpNkIeV/Epcb7gQZsrbe7pO2U/RNiY?= =?Windows-1252?Q?MqrLbC7hHEW05zgYuYAJBxUKosDAYlvmpQ7d7aDe2ybv/HgS6ukwUAdg?= =?Windows-1252?Q?3AzM9ynMqdXB++S5VD2OgpjNhpTPj1UXLCt+NjsD/AZVES7UtOHKSNAf?= =?Windows-1252?Q?mRNvQavYea8UlOqJQIPHj47MhhVpPTNPcknFdZtAhmDGqk+7qv1p6Viu?= =?Windows-1252?Q?P7plb/D8d7+YAeRLGuZVlxx6i6w6TyPnQZ68xMRVgUdCc4zlAtVoxPIq?= =?Windows-1252?Q?wZTrbUFMLd1hJtXkR5sU4xQ07Vsql36lYPM+BZgsDXIj7jtC51VmTZYT?= =?Windows-1252?Q?HxeEaycDFtxRZOpsml/Rufv5LIDEP4adIAGlgS6KK1Gz4Nv9w0j0rtlx?= =?Windows-1252?Q?oruEqMq0U0iHGyb0Rp6puKICYe8w4wfFq1eLUjJLz+Cj/wP88pTmuQ8Q?= X-OriginatorOrg: cornell.edu X-MS-Exchange-CrossTenant-Network-Message-Id: a544adfa-6d2d-47a2-448a-08d8cc58811a X-MS-Exchange-CrossTenant-AuthSource: BN7PR04MB4388.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Feb 2021 17:39:37.0224 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 5d7e4366-1b9b-45cf-8e79-b14b27df46e1 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: uB5CAkwMigjVtLRkfhtAauDnI3BazrPTigStn7PsGUJNr2T4+iqf2s1Q3RViq5bEZIbvKU1cjOaCAqYk/peh9A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR04MB5474 X-Spam-Status: No, score=-3.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: cygwin-developers@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin core component developers mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Feb 2021 17:39:41 -0000 I've had occasion to work through dtable::dup_worker, and I'm seeing the potential for leaks of path_conv handles. I haven't seen any evidence that the leaks actually occur, but the code should probably be cleaned up if I'm right. dup_worker calls clone to create newfh from oldfh. clone calls copyto, which calls operator=, which calls path_conv::operator=, which duplicates the path_conv handle from oldfh to newfh. Then copyto calls reset, which calls path_conv::operator<<, which again duplicates the path_conv handle from oldfh to newfh without first closing the previous one. That's the first leak. Further on, dup_worker calls newfh->pc.reset_conv_handle (), which sets the path_conv handle of newfh to NULL without closing the existing handle. So that's a second leak. This one is easily fixed by calling close_conv_handle instead of reset_conv_handle. As a practical matter, I think the path_conv handle of oldfh is always NULL when dup_worker is called, so there's no actual leak. I may well be confused and/or missing something. Ken