X-MS-Exchange-Crosstenant-ID: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b MIME-Version: 1.0 From: "Anthony Sottile" Received: from mailman.mit.edu (mailman.mit.edu [18.7.21.50]) by krbdev.mit.edu (Postfix) with ESMTP id 6628010180E; Thu, 11 Jan 2024 13:31:37 -0500 (EST) Received: from mailman.mit.edu (localhost [127.0.0.1]) by mailman.mit.edu (8.15.2/8.12.8) with ESMTP id 40BIVaN74092525; Thu, 11 Jan 2024 13:31:36 -0500 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2135.outbound.protection.outlook.com [40.107.93.135]) by mailman.mit.edu (8.15.2/8.12.8) with ESMTPS id 40BGpMSi4065303 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 11 Jan 2024 11:51:23 -0500 Received: from SN4PR0501CA0119.namprd05.prod.outlook.com (2603:10b6:803:42::36) by BN0PR01MB6912.prod.exchangelabs.com (2603:10b6:408:16b::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.17; Thu, 11 Jan 2024 16:51:20 +0000 Received: from SA2PEPF000015C8.namprd03.prod.outlook.com (2603:10b6:803:42:cafe::1e) by SN4PR0501CA0119.outlook.office365.com (2603:10b6:803:42::36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7202.12 via Frontend Transport; Thu, 11 Jan 2024 16:51:20 +0000 Received: from mail-yw1-f172.google.com (209.85.128.172) by SA2PEPF000015C8.mail.protection.outlook.com (10.167.241.198) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.14 via Frontend Transport; Thu, 11 Jan 2024 16:51:19 +0000 Received: by mail-yw1-f172.google.com with SMTP id 00721157ae682-5ed10316e22so52346417b3.3 for ; Thu, 11 Jan 2024 08:51:19 -0800 (PST) content-type: text/plain; charset="utf-8" Sender: "krb5-bugs-incoming" X-Mailman-Version: 2.1.34 X-MS-Exchange-Crosstenant-Authsource: SA2PEPF000015C8.namprd03.prod.outlook.com Arc-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 209.85.128.172) smtp.rcpttodomain=mit.edu smtp.mailfrom=sentry.io; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=sentry.io; dkim=pass (signature was verified) header.d=sentry.io; arc=none (0) Date: Thu, 11 Jan 2024 11:51:08 -0500 X-Google-Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704991879; x=1705596679; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hdOhrHB0nSVsSnjlwcRmvT3qT/UMvI7JfBn2JwuVNBk=; b=eDw2Zsx36VW4y72UiZ+bIGimwA/f7fP8eICH28bbMYpBY3tmSdzRLPY8Ib7wqS88cn oRfw/HFCUEBd4ltnsHCJX7zmbyJ738oqBObIRrm6hskKaww7vzZs4cd4mni7zm5djHoy Yp8rETAY9iNskI2xQad4i9ZIiJZVyDVH23I1ZdA+1xxIktAQafaFhkzI6HLGD/vkpoT7 +ntrePABgjuZXI9oE9WR+/8+8+LZWmyZw/HEu2jula777vos8zglgxJLLBCRhMe6INqw tHCdONFx+ULbIuZSPEs/aPKEl9xdw9TXTBIY5R+yrmmemOWs/PASs3u663VQwFYIw1iU 3Tbg== X-MS-Exchange-Crosstenant-Originalarrivaltime: 11 Jan 2024 16:51:19.7919 (UTC) X-MS-Office365-Filtering-Correlation-ID: e05ca0ab-2e24-42f6-b34c-08dc12c5891b X-MIME-Autoconverted: from quoted-printable to 8bit by mailman.mit.edu id 40BGpMSi4065303 X-Microsoft-Antispam-Message-Info: gLBV/XWvSHZLPwc5fu8wF19sD4nlGR4eRPyqkAo0xwXWacQT3ww7HAGB7Iyqtpab1cjo4QcmDKDkYhPLEe52d41DAgHXtKvwX3m3LLLy66LpkIMMj7vzp8Jo0Gcm9lYHbQIdr1kV9YAVoaIl/XLyAqiQlnWMuHCrkPnvwvYlTyfJ3ZsLiNFgSGr6FQI3FmbszsABHtS5mnO3UubN4QRSu9RrhM/L9XKX71ogXMUhOXHiVgxVty4dcFaXkKVDFgljLPnOB97ig4+DwLqZsuZTXeHGqmJJHpFZGI0o/uauoOs22S1rtePpR1WZ9Jls6pFXqmVtSrcDyz851yLZ+3m+fdeeT9NgEapwsVFi48k7v93ohxuPee4ZOkqWlGX5iyVt3RtUo4L/WLYQaobzx8uZqQkXhvGOxkiWpr+9flxwHCMqfvv7EZOtoruVLO7oZ+aS0bbBpzkv2Xk1lVCRex/igW/11MJVUliTKWRlwpiMgL01JidtcGD9n0SlupJj4Wi0r+iBjVcxcVavkAzotmcfpNo5pF160LDQCzo/W6nk/I2y0WQxIFQQXmQxmvbfdsUv/6HyLd0QPjOGya7a+3rKu6xuHCW5u6UPY0AcuW88leiwH1YJCLH8cGqBfLwq+8EH X-Google-SMTP-Source: AGHT+IGvxto80jKRf2VWZgLvcLDXWD8zFwpLSZ8Q3cmsJHf+/whM7zHzgAbTpohJgBTREDRvLjyV6vdiB79Ae9uZsUg= X-MS-Exchange-Antispam-Relay: 0 Dkim-Filter: OpenDKIM Filter v2.11.0 unknown-host (unknown-jobid) Dkim-Filter: OpenDKIM Filter v2.11.0 unknown-host (unknown-jobid) References: Subject: [krbdev.mit.edu #9109] Re: memory leak on macos X-MS-Exchange-Crosstenant-Network-Message-ID: e05ca0ab-2e24-42f6-b34c-08dc12c5891b X-Received: by 2002:a05:690c:990:b0:5fa:a49d:c58e with SMTP id ce16-20020a05690c099000b005faa49dc58emr55016ywb.25.1704991879065; Thu, 11 Jan 2024 08:51:19 -0800 (PST) X-Eoptenantattributedmessage: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b:0 X-LD-Processed: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b,ExtAddr X-Microsoft-Antispam: BCL:0; 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=hdOhrHB0nSVsSnjlwcRmvT3qT/UMvI7JfBn2JwuVNBk=; b=ZpXJN69hyn9Zf+zz9+CGW1if1B2poQwtB22tgBdoc1mm3vQR5+SniNdw/DvhBStFVfXn2IrcXNtL28dGNkQ8sdBXbVAsI/5NvtqY1+1xWsfVMTK9w+tPNduknEbz60q+rUZtOo51qLx1dUxZqj7pQjlvpdh1yTLGffA47Sg1KLOZGx1vd1Q/xPXoN0K7MT45hwV2ULJ0MXwUeBHwpAWq0UG1xFp+R9xGc6mvKZRXhV2U5EbKzTs0010uvmQ+V8kLPj697ML4OZQ2RlnAzTD5eAkgVIMSh3hzbOCRksYxW3u6BH1NKf02mOHT0CRC+zZrwjeukjFgi556fpImAvSeRw== Received-SPF: Pass (protection.outlook.com: domain of sentry.io designates 209.85.128.172 as permitted sender) receiver=protection.outlook.com; client-ip=209.85.128.172; helo=mail-yw1-f172.google.com; pr=C X-RT-Interface: Email From krb5-bugs-incoming-bounces@mit.edu Thu Jan 11 13:31:37 2024 X-MS-Exchange-Crosstenant-Authas: Anonymous Message-ID: X-Eopattributedmessage: 0 Return-Path: X-GM-Message-State: AOJu0YxW+REmSWrvM/1QR9lObi0ZrIPLPtaEesZ5YWPYeeElUmA+DsAx A4+9SjIs0RggYKT7yPEwIFBLh5kZfl0pH1sNSmr81n7xUmxQBzwkM2us7v7caH3kwQ== X-MS-Exchange-Atpmessageproperties: SA X-Auto-Response-Suppress: DR, OOF, AutoReply Precedence: list Content-Transfer-Encoding: 8bit X-Beenthere: krb5-bugs-incoming@mit.edu X-Forefront-Antispam-Report: CIP:209.85.128.172; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail-yw1-f172.google.com; PTR:mail-yw1-f172.google.com; CAT:NONE; SFS:(13230031)(4636009)(376002)(396003)(136003)(346002)(39860400002)(64100799003)(61400799012)(48200799006)(451199024)(498600001)(966005)(42186006)(786003)(316002)(356005)(55446002)(7636003)(7596003)(86362001)(6666004)(53546011)(83380400001)(336012)(26005)(70586007)(68406010)(9686003)(8676002)(5660300002)(44832011)(34206002)(2906002); DIR:OUT; SFP:1102; Arc-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LPr21X7z3GSiy/PtZ6jXphzyeRmbur02Icl6lroaNjHGiqHO9yQO3f+ZykhjasB18nZbekMPCN+RrhwaKsxj0oj/7Vqm4ioweOiJ3q+/G1N1O1Kyzs7t0VfXyFTtKriQ3jLi2OkNx1IvLHSduG+tRTzSZX6LZpud6wdd0kdRSCRrG1KdEM4nhJEYQDosFFi+snDqaO9Um1le5OUz+lup+tX4WwVL/mQemwjyxjcjp6i0yoUrIqocBaxTyR2R75t0b6Xdk7764wVTR394udlyGI0uRCjeQhWPHugVWiidK8vfLV2MQKG4ebZK/+ehEwC9Y7CWzdw5322tXjfaibn8Og== In-Reply-To: Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mitprod.onmicrosoft.com; s=selector2-mitprod-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hdOhrHB0nSVsSnjlwcRmvT3qT/UMvI7JfBn2JwuVNBk=; b=rd7DDvPJJ1EGgaWDUzHUlla7SDu8pAQzvhIEYPRmfpMJ7ZCXb8db9WztaSK297KKMz3DH0hrUzPOodtDHazXTiURTOkVdAZKDT0p54X3ior2vKvJhv4zF6cs5+/a5y35pn1E+RpvOpn1ZttqSld/fa2OAD/uVd886EjWnIblhqs= Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sentry.io; s=google; t=1704991879; x=1705596679; darn=mit.edu; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=hdOhrHB0nSVsSnjlwcRmvT3qT/UMvI7JfBn2JwuVNBk=; b=W+1HPqxyDZJHUAYzaI9StPH6adLBXKbyc66rFimphhapabT1t4s3LwnbBxepRZGqM1 WiWJlQ3mb/8MDtnKjdN8+Pn32+JCrzQxX9uUVd09H0YVdGSwo3rs/HJczD+nl43CY/c9 5sfWBqzT3u7rOku2Wa9x6kZ9UgfTG/l2bLqnyXTnZzX02q880FGlnoDPf/+Mxc/ISzvW IwqSjyLH2wi4zC2qTzBI+K3FVxUtO/C4HrObuApSmibM0IPstT1SJpMs64j6WRmJuLaL tgbJztu85RQmCXpS58hYn62AD8rqJue95M+D4+WFKegV964JFDSTgEbLEpe8wOXYFFlu gCeg== X-MS-Exchange-Crosstenant-Fromentityheader: Internet X-MS-Publictraffictype: Email X-Originatororg: mitprod.onmicrosoft.com X-Externalrecipientoutboundconnectors: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b X-RT-Incoming-Encryption: Not encrypted X-Mailman-Approved-At: Thu, 11 Jan 2024 13:31:35 -0500 X-MS-Exchange-Transport-Crosstenantheadersstamped: BN0PR01MB6912 Authentication-Results: mailman.mit.edu; dkim=fail reason="signature verification failed" (1024-bit key, unprotected) header.d=mitprod.onmicrosoft.com header.i=@mitprod.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-mitprod-onmicrosoft-com header.b=rd7DDvPJ; dkim=fail reason="signature verification failed" (2048-bit key, unprotected) header.d=sentry.io header.i=@sentry.io header.a=rsa-sha256 header.s=google header.b=W+1HPqxy Authentication-Results: spf=pass (sender IP is 209.85.128.172) smtp.mailfrom=sentry.io; dkim=pass (signature was verified) header.d=sentry.io;dmarc=pass action=none header.from=sentry.io; X-RT-Original-Encoding: utf-8 X-MS-Traffictypediagnostic: SA2PEPF000015C8:EE_|BN0PR01MB6912:EE_ To: krb5-bugs@mit.edu X-MS-Exchange-Senderadcheck: 0 Errors-To: krb5-bugs-incoming-bounces@mit.edu RT-Message-ID: Content-Length: 4851 here is a patch which fixes the bug: ```diff --- lib/krb5/ccache/cc_api_macos.c.old 2024-01-10 16:14:19 +++ lib/krb5/ccache/cc_api_macos.c 2024-01-10 16:14:43 @@ -218,8 +218,10 @@ xpc_release(request); if (reply != NULL) xpc_release(reply); - if (conn != NULL) + if (conn != NULL) { xpc_connection_cancel(conn); + xpc_release(conn); + } return ret; } ``` On Wed, Jan 10, 2024 at 2:46 PM Anthony Sottile wrote: > > hello, I've found what I believe to be a memory leak on macos -- I've > tried to narrow it down to a simple reproduction: > > ```c > #include > #include > #include > > int main(void) { > for (int i = 0; i < 10; i += 1) { > gss_cred_id_t cred = 0; > OM_uint32 minor = 0; > OM_uint32 ret = gss_acquire_cred( > &minor, GSS_C_NO_NAME, 0, GSS_C_NO_OID_SET, > GSS_C_INITIATE, &cred, NULL, NULL > ); > if (ret == GSS_S_COMPLETE) { > printf("no error\n"); > gss_release_cred(&minor, &cred); > } else { > printf("got error: %d\n", ret); > } > } > } > ``` > > compiled using: > > ```bash > gcc $(PKG_CONFIG_PATH=/opt/homebrew/Cellar/krb5/1.21.2/lib/pkgconfig/ > pkg-config krb5-gssapi --cflags --libs) t.c > ``` > > leaks shown using: > > ```bash > leaks --atExit -- ./a.out > ``` > > note: I don't have gss set up in any way so the expected path of my > program above is the error case: > > ```console > $ ./a.out > got error: 458752 > got error: 458752 > got error: 458752 > got error: 458752 > got error: 458752 > got error: 458752 > got error: 458752 > got error: 458752 > got error: 458752 > got error: 458752 > ``` > > > > this leak is the important one (the other is sort of expected, a > global error message retrievable later and is not per-call): > > ``` > > STACK OF 8 INSTANCES OF 'ROOT CYCLE: ': > 19 dyld 0x1822eff28 start + 2236 > 18 a.out 0x102af7f00 main + 88 > 17 libgssapi_krb5.2.2.dylib 0x102bdac2c gss_acquire_cred + 36 > 16 libgssapi_krb5.2.2.dylib 0x102bdadc8 > gss_acquire_cred_from + 400 > 15 libgssapi_krb5.2.2.dylib 0x102bdb180 gss_add_cred_from + 624 > 14 libgssapi_krb5.2.2.dylib 0x102bf8d30 > spnego_gss_acquire_cred_from + 128 > 13 libgssapi_krb5.2.2.dylib 0x102bf8e8c get_available_mechs + 228 > 12 libgssapi_krb5.2.2.dylib 0x102bdadc8 > gss_acquire_cred_from + 400 > 11 libgssapi_krb5.2.2.dylib 0x102bdb180 gss_add_cred_from + 624 > 10 libgssapi_krb5.2.2.dylib 0x102be919c acquire_cred_from + 68 > 9 libgssapi_krb5.2.2.dylib 0x102be9894 > acquire_cred_context + 1664 > 8 libkrb5.3.3.dylib 0x102cf1a70 > krb5_cccol_have_content + 92 > 7 libkrb5.3.3.dylib 0x102cf1788 > krb5_cccol_cursor_next + 76 > 6 libkrb5.3.3.dylib 0x102cf44dc > api_macos_ptcursor_next + 240 > 5 libkrb5.3.3.dylib 0x102cf49d4 get_primary_name + 124 > 4 libxpc.dylib 0x182388850 > xpc_connection_create_mach_service + 40 > 3 libxpc.dylib 0x182398f80 > _xpc_connection_create + 136 > 2 libdispatch.dylib 0x182497838 > _os_object_alloc_realized + 32 > 1 libobjc.A.dylib 0x1822abe00 class_createInstance + 64 > 0 libsystem_malloc.dylib 0x182488eb0 > _malloc_zone_calloc_instrumented_or_legacy + 92 > ==== > 47 (5.98K) << TOTAL >> > ---- > 6 (784 bytes) ROOT CYCLE: [240] > "com.apple.GSSCred" (from libkrb5.3.3.dylib) pid 599 [GSSCred] > 3 (368 bytes) ROOT CYCLE: > [160] "com.apple.GSSCred" (from libkrb5.3.3.dylib) > 1 (64 bytes) ROOT CYCLE: 0x13e0076f0> [64] > CYCLE BACK TO [240] > "com.apple.GSSCred" (from libkrb5.3.3.dylib) pid 599 [GSSCred] > 1 (144 bytes) [144] > 2 (176 bytes) [32] > 1 (144 bytes) [144] > ``` > > seemingly from this code here: > https://github.com/krb5/krb5/blob/ec71ac1cabbb3926f8ffaf71e1ad007e4e56e0e5/src/lib/krb5/ccache/cc_api_macos.c#L161-L224 > > I'm on macos 13.5.2 arm64 and using krb5 1.21.2 from homebrew > > ``` > $ uname -a > > Darwin FJJ4YYCWYX.local 22.6.0 Darwin Kernel Version 22.6.0: Wed Jul > 5 22:22:05 PDT 2023; root:xnu-8796.141.3~6/RELEASE_ARM64_T6000 arm64 > arm Darwin > ``` > > anthony