get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2218732/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2218732,
    "url": "http://patchwork.ozlabs.org/api/patches/2218732/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/glibc/patch/PAWPR08MB8982F5F029936337C0F20A778350A@PAWPR08MB8982.eurprd08.prod.outlook.com/",
    "project": {
        "id": 41,
        "url": "http://patchwork.ozlabs.org/api/projects/41/?format=api",
        "name": "GNU C Library",
        "link_name": "glibc",
        "list_id": "libc-alpha.sourceware.org",
        "list_email": "libc-alpha@sourceware.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<PAWPR08MB8982F5F029936337C0F20A778350A@PAWPR08MB8982.eurprd08.prod.outlook.com>",
    "list_archive_url": null,
    "date": "2026-04-01T20:12:21",
    "name": "malloc: Simplify _int_free_chunk",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "44076fb7a6b89ae5602d175bb11b30b6f8d89578",
    "submitter": {
        "id": 67598,
        "url": "http://patchwork.ozlabs.org/api/people/67598/?format=api",
        "name": "Wilco Dijkstra",
        "email": "Wilco.Dijkstra@arm.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/glibc/patch/PAWPR08MB8982F5F029936337C0F20A778350A@PAWPR08MB8982.eurprd08.prod.outlook.com/mbox/",
    "series": [
        {
            "id": 498383,
            "url": "http://patchwork.ozlabs.org/api/series/498383/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/glibc/list/?series=498383",
            "date": "2026-04-01T20:12:21",
            "name": "malloc: Simplify _int_free_chunk",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/498383/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2218732/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2218732/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "libc-alpha@sourceware.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@legolas.ozlabs.org",
            "libc-alpha@sourceware.org"
        ],
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256\n header.s=selector1 header.b=a9tFfj1r;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=a9tFfj1r;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org;\n receiver=patchwork.ozlabs.org)",
            "sourceware.org;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256\n header.s=selector1 header.b=a9tFfj1r;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=a9tFfj1r",
            "sourceware.org;\n dmarc=pass (p=none dis=none) header.from=arm.com",
            "sourceware.org; spf=pass smtp.mailfrom=arm.com",
            "server2.sourceware.org;\n arc=pass smtp.remote-ip=52.101.65.26"
        ],
        "Received": [
            "from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fmGQq3bhzz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 02 Apr 2026 07:13:55 +1100 (AEDT)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 9EC104BA2E2F\n\tfor <incoming@patchwork.ozlabs.org>; Wed,  1 Apr 2026 20:13:53 +0000 (GMT)",
            "from DU2PR03CU002.outbound.protection.outlook.com\n (mail-northeuropeazon11011026.outbound.protection.outlook.com [52.101.65.26])\n by sourceware.org (Postfix) with ESMTPS id 8D76D4BA2E05\n for <libc-alpha@sourceware.org>; Wed,  1 Apr 2026 20:13:28 +0000 (GMT)",
            "from DUZP191CA0037.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4f8::9) by\n DBBPR08MB10676.eurprd08.prod.outlook.com (2603:10a6:10:530::10) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17; Wed, 1 Apr\n 2026 20:13:24 +0000",
            "from DU2PEPF00028D11.eurprd03.prod.outlook.com\n (2603:10a6:10:4f8:cafe::73) by DUZP191CA0037.outlook.office365.com\n (2603:10a6:10:4f8::9) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.30 via Frontend Transport; Wed,\n 1 Apr 2026 20:13:24 +0000",
            "from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by\n DU2PEPF00028D11.mail.protection.outlook.com (10.167.242.25) with Microsoft\n SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.17\n via Frontend Transport; Wed, 1 Apr 2026 20:13:24 +0000",
            "from PAWPR08MB8982.eurprd08.prod.outlook.com (2603:10a6:102:33f::20)\n by PR3PR08MB5724.eurprd08.prod.outlook.com (2603:10a6:102:85::20)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17; Wed, 1 Apr\n 2026 20:12:21 +0000",
            "from PAWPR08MB8982.eurprd08.prod.outlook.com\n ([fe80::5821:707a:c30b:dd9a]) by PAWPR08MB8982.eurprd08.prod.outlook.com\n ([fe80::5821:707a:c30b:dd9a%5]) with mapi id 15.20.9769.016; Wed, 1 Apr 2026\n 20:12:21 +0000"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org 9EC104BA2E2F",
            "OpenDKIM Filter v2.11.0 sourceware.org 8D76D4BA2E05"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 8D76D4BA2E05",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 8D76D4BA2E05",
        "ARC-Seal": [
            "i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1775074408; cv=pass;\n b=GGP165notEJgGHa4/ZB1JYMwI9nk72NljGFOmi1xT9yW5m+YL++0lM2giEmcxFCOiOUcDdfd0XllhmUneB7cwchSU1a9iEzwUzmCVXNboIy+Emq7Myd/qIGdVPF7igqTxQpO8vcN2cAK8izhGop4c2msrZjG3IfXRTxlE7PyP7o=",
            "i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;\n b=c1HM2YQT9GB1iH3BDCA6XUpA/+HJ3rGlIL44M89hhPoxSjy7tity8qxqGUvThv8rbNM5mBz43pVzCiTYrlC6GENb8yGAXcJ946PvZSawrf1FPTHj5ZZT8/reqB54J4L9ySSXwEIUFF0onQ15Li6oe242pWkkNkkgYMhRdT+jNWDQh/uxb7NU3dIzIYJiF2bWn+iwA43zdosBBZdDtTdFPOZV8p/7JqT1c1iuAOV7I3SEGk0lO15SSUfRs+YBShrmhNgvpxsLCN2NhJfJGFUM4UJk1D5YXAgIQrHwUKjEvkIM6SvPZhytnW8pey/6me63Hj12/FhmeXYaspKUHSQM8A==",
            "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=YhKaJVOALzBX3Kxc04WJoMGhlxrsAh9cb59c+sA1ZlAJHg5Rl2nzja6t0jAW49AdmJRdpLSYGSwXuWoB7dV2hxnEBp8t/ZRR1H6tsk48EtefkzZYJduseSkcL7VbqeZUG+DZ6fvEH4SFDLUTU05RzSxnomPb0lngA111aiUsn0xC8jOwc96MxEGzvNY/044gc7Ewi0FKIsK/0/pJeReyyqkxj+RsULHUvc8DXM1qn/i8FyLjyVYB779gTyZcr/ybVM0NPxepLCJ3TNaYZ1IHOSr03VLqDdRRD7xRmlYPJm6kSNgcNyQh9V2M4W6jYYVbtAjONOkyS7GXq9qVKOjVYA=="
        ],
        "ARC-Message-Signature": [
            "i=3; a=rsa-sha256; d=sourceware.org; s=key;\n t=1775074408; c=relaxed/simple;\n bh=CfmiUpBZPtQxQzs8TcNv5RfGMGflVckdtZNiguQhQTc=;\n h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID:\n MIME-Version;\n b=d7521GHAYVPQhW6fB/xd14nZDz0PNcQoF7o9FJtjkBSICdnlM24+XLSKK3J+HFKxj36eyCoXu2vFuhZsRTe8U9q8NrplttEJDl1M00dg8nzQXnUPXrkhcfcEdLj84BbafZKxQPEDzjKfMEidVeRiyW1iIo70sdrXx88Olw3GY0U=",
            "i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=qsP+jM4sYIBSZRs05BHyOEzYlNfdv/aNe150O0pnqy8=;\n b=fxfG943Ly/iwpUmssuXdAeKwcDUWkeiq13ZKAzb0k2OnLp8EyB4z8rMjm2bPfDPJiGML6tR+ARpy/HEYblZAiAh7mcdoeOdcpKzpJHlOcD+zVGUe1+erPKg4Ca3EcUKwpynNR/9JrrtMmeN8UqDQixr+dILaMRMmbjehGZiiI2FAwcmWSm0z/EJzOEnaAK6Gh4BPO9ExAbCxbIO9jigQdNnbkZcPMM8TfLw6Zv3L5kccmvQCPzwhu3BqNlFMFdf41yfvpdItrA//N8sB8Yq3s7bBOH/ZrpAurr2F4zRhFaDzs0HXM4bbpsyDTeQxBgJxbjhiCl+9oSQSX1H0wjJ0eQ==",
            "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=qsP+jM4sYIBSZRs05BHyOEzYlNfdv/aNe150O0pnqy8=;\n b=M0vN9ZmmkiIwUwphViPb86JPqG0rpVayMjZ68UQo3RXQb8NOjA3XU2yXQifA718BwEPX9SSS8dZP0/fkQtkKDppk31kKg6/gEdxP4sbgLrjWkSFQiRMN1cgyLsCs2TBr5LeqXIjbNY0Q5ZRk6hVV/As/xN23Y00JoFAZYxkOGDDoh8HvKJh0gSoNFOo0eUEkWJFgeFAPXvZiPapT23lmU/AToOJDu5JyNhurWhSDJvnlT27B46pEqLQvWdOPyM2gCb9V4IbooEVeRDPda6xM2ISI8iF75bnwLZ8i6Tf5zr4QV37YgoVsMJY+68c27kP5BcGJtLQA59IPyiaGGtsseQ=="
        ],
        "ARC-Authentication-Results": [
            "i=3; server2.sourceware.org",
            "i=2; mx.microsoft.com 1; spf=pass (sender ip is\n 4.158.2.129) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com;\n dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;\n dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1\n spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]\n dmarc=[1,1,header.from=arm.com])",
            "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass\n header.d=arm.com; arc=none"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=qsP+jM4sYIBSZRs05BHyOEzYlNfdv/aNe150O0pnqy8=;\n b=a9tFfj1raGHOjG2O9ixJqROJfsJ7rma2XfGhtP7VXcWQVAP6TyfSDiXVOmHTJ7Ezs+MocaFemi/hG0Bu/D8xeJx3sGo9la9WNfJypx9l/QuxRgoxvcZ4VlIIyVI5XzeotWjVfx8mz/tL0kDmLUAUTjAjwyFi/rMz2k+dMG8N8uM=",
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=qsP+jM4sYIBSZRs05BHyOEzYlNfdv/aNe150O0pnqy8=;\n b=a9tFfj1raGHOjG2O9ixJqROJfsJ7rma2XfGhtP7VXcWQVAP6TyfSDiXVOmHTJ7Ezs+MocaFemi/hG0Bu/D8xeJx3sGo9la9WNfJypx9l/QuxRgoxvcZ4VlIIyVI5XzeotWjVfx8mz/tL0kDmLUAUTjAjwyFi/rMz2k+dMG8N8uM="
        ],
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 4.158.2.129)\n smtp.mailfrom=arm.com; dkim=pass (signature was verified)\n header.d=arm.com;dmarc=pass action=none header.from=arm.com;",
        "Received-SPF": "Pass (protection.outlook.com: domain of arm.com designates\n 4.158.2.129 as permitted sender) receiver=protection.outlook.com;\n client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C",
        "From": "Wilco Dijkstra <Wilco.Dijkstra@arm.com>",
        "To": "glibc developers <libc-alpha@sourceware.org>",
        "Subject": "[PATCH] malloc: Simplify _int_free_chunk",
        "Thread-Topic": "[PATCH] malloc: Simplify _int_free_chunk",
        "Thread-Index": "AQHcwhPA6TdGhBAV2kWrQkTjgL4leQ==",
        "Date": "Wed, 1 Apr 2026 20:12:21 +0000",
        "Message-ID": "\n <PAWPR08MB8982F5F029936337C0F20A778350A@PAWPR08MB8982.eurprd08.prod.outlook.com>",
        "Accept-Language": "en-GB, en-US",
        "Content-Language": "en-GB",
        "X-MS-Has-Attach": "",
        "X-MS-TNEF-Correlator": "",
        "msip_labels": "",
        "Authentication-Results-Original": "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=arm.com;",
        "x-ms-traffictypediagnostic": "\n PAWPR08MB8982:EE_|PR3PR08MB5724:EE_|DU2PEPF00028D11:EE_|DBBPR08MB10676:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "8e5db563-47a8-406f-aff1-08de902b2106",
        "x-checkrecipientrouted": "true",
        "nodisclaimer": "true",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam-Untrusted": "BCL:0;\n ARA:13230040|366016|1800799024|376014|38070700021|56012099003|18002099003;",
        "X-Microsoft-Antispam-Message-Info-Original": "\n zcjORE0u7hhT1vyvQuTCbsDQTWTwx6plznJ5fkGGLSj9WZm/0X1XroTbpUqT/akqWn80GAHKOx9YFeGQx9ZI1y7i+nC246NeDQ+p6vgCkj4RnpESfF70RhKvi4oL8tbEffSCEsA0GAAOvhSQfRvapfz4cJWA9d/LLeTnOfXhDTT8tyAujO0npSXUhqhR1y6a0G9d5CbHqptJml5e3BrQoCfesZG2o58At7bH2Ag99lGKTA2L4v3w+HAJPGlEAWG/PmuggaY7k4aGc3au49otHtbu2QUfIzSmr7j2ULs10Ur7AptRPCONC4jATC6BlrKq9LHqhqW2cVpD26PVtIKwNsRe5BkXLa4nZB2JmEhA1nWaXBvnCe17jYlaNYkzx59zNjL0V/r2u0K+FyI39Mgqlz5tz/bMg7xwwHYTZ1H1FEywh9w61tVr91VLxYDinN+fc5BwY1miLMkPkjqtyROPu/mA6x9fQ+2w2o4ljXq4f+xghIvs0t/tfj7EnAdy9nExGmjLqFceoihjGaQmXtwM8kPEVKIf9fEoGQV32mJ95Vhywkka9d23aNn+1B6/1jhOHwOfwhzMAFaTA9aeKyCkbAspA1wNPffjHoW0zUpQKhxB6e/EgtXD2ZVBuvslTHL/ykG3fD0SnqZOFaJTwBvlAL9Z3Z1mT52MtTfnEhct50wwdlcVXloWJIDBGSgY4hFEXmOXckwEz/v76DnowNWcnvtdctoo1OCPiq32nm3d6+KBfcQaXnWthDlTSWeTFSTlxR+FxoIok/5OljFuqfSeVKfiRs1OI5dpqCWrHtUJlLM=",
        "X-Forefront-Antispam-Report-Untrusted": "CIP:255.255.255.255; CTRY:; LANG:en;\n SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAWPR08MB8982.eurprd08.prod.outlook.com;\n PTR:; CAT:NONE;\n SFS:(13230040)(366016)(1800799024)(376014)(38070700021)(56012099003)(18002099003);\n DIR:OUT; SFP:1101;",
        "Content-Type": "text/plain; charset=\"iso-8859-1\"",
        "Content-Transfer-Encoding": "quoted-printable",
        "MIME-Version": "1.0",
        "X-Exchange-RoutingPolicyChecked": "\n a8ckjvzhuBHkqkswIJqBbFzseHvyewz2EhoKaGGwJJIg+AOFWemohDtm+FnoiipDyEc9HKnDOgqmx0RpEOOUeu6PZUoHuuHQmVV44k+W0+TyTNv7Ol96JE+78QAjVA+Cjkg2H9AT+cWuA/dXrjwiwyX54Ac2QMuIA5pTDTomyLNGmzIMjJx+GN71eSnEGsyK8CD5TI9XEzMJvdn3RMQykWyWfs70pGjzXKhIjm942ZNT++UalexAPW7kwoPSauX+//ENBU+GqNCY+JvUxYhzDC+mkdj8IbU/EDoP9YT+TMwuVLyjT6vupbuUA8IqxmgfWLJFFVbtv1EG8PL8HNPiQw==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": [
            "PR3PR08MB5724",
            "DBBPR08MB10676"
        ],
        "X-EOPAttributedMessage": "0",
        "X-MS-Exchange-Transport-CrossTenantHeadersStripped": "\n DU2PEPF00028D11.eurprd03.prod.outlook.com",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id-Prvs": "\n 58aef281-ad6c-460f-bad3-08de902afb98",
        "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|82310400026|1800799024|376014|14060799003|35042699022|36860700016|18002099003|56012099003;",
        "X-Microsoft-Antispam-Message-Info": "\n rRRNBEp27tVRb1R6Voxcjbmb5CAKQStHeC6A9RApgOfkBwBfwNeXYyyG8isSWPaiuUsz9qPGCHTSO/eYgysmmGoxLb8JtPpGveXCo/mMZD7BSUWodoUH1eZT2aGuWDywapeKiSZiJHeJR5BMrcDsTpDlEZYUzYEgspD6laEFp3EU20dFIWj0d3p23n+G+61rK5BgCy/Yxm0dqubGX6qr5TQ1aSrzwONFwKvaaRnbb7n5S553MwVqOlX4X2DKDTNZGMUX54kuyI5iRxFeAiEAfnlH4xB2DpqBRBFFOvVHEhVmBnD1arbbFe7LMGx1yP+/fN3w4nI8sDBa+sK4jkvGF1UatXNGTYlwXrro7FDzVnxTPFFePxXLQYIoZcoz/szgriXTowNLX0VVHWbnKtZiSUCNnvv29aFPDrEpf7PgKVwWC18zkZH8+V9ajRopfSJHaCCOZY33Yn1pPJMIedbzLZaoH3gRYe5si58YCxLzjyGSKYoEORzPtS7uzk28GzkHhLMt/KU9utgga1pInMX9CcIPosidom9EP8+AzBwFYkvOx4KK28rPXGrkZs8EkpHjW1LqAXOrMyKi/T0f2RholD/MHa7bhu3NlvtcIzJHjdGtdq2zWuskEWhMyE7awln6IYOHuTiHBkxzC+DEd0WJlMT/pfkXarXPRLLd95Rnbsia3xHoPXNT6lrbEbFKGivaplgYxcZsu/ToPD/BxpfQxNfFkuXX4dkK8uytbmQ+MweVf86MMeGGZm2RfP1DB2OqKRt/l9pij8a01a1yjiAv1Q==",
        "X-Forefront-Antispam-Report": "CIP:4.158.2.129; CTRY:GB; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:outbound-uk1.az.dlp.m.darktrace.com;\n PTR:InfoDomainNonexistent; CAT:NONE;\n SFS:(13230040)(82310400026)(1800799024)(376014)(14060799003)(35042699022)(36860700016)(18002099003)(56012099003);\n DIR:OUT; SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n l59GZH1ujyK1s0rMRpINBIQ38bFv6YqktdNF0cM2IOHuSKNIBme7bhBEVdc/A+pY5WiqAkkFSwoSOgPDj/XNtF/F9DHOg/x70L51ttKyK2o78CdfeBtNJ9ggDcA6vUotcmTj8BFHAzXnbGMG38udu0+hB5TJUCj72BQnTUZSe88GljNzUteeaxtPpXV3+EG4QuBXJvk0mCmxf+6nboxEUU9R2fIgK4j7pQkojnljxII0HW5kS8Rsp1KQVHSDRdo9uN7AVbAjV32JK2jbcvnKaF+Y/V79EsGIN8R7EfMeGxhTghPnKFVXKGYN2qFYW8iI9kCQfqUjpDg130/FS992TMH4aQP4PzQljIX7Ulnlg151e8nj1tBZ4B+7+w/1xSNgZ7kqEG2FWzDa2tVngnauRNQ4f2uNm+sow3AZBs2kjX10qgDOjsjzCZH1irYGzYEh",
        "X-OriginatorOrg": "arm.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "01 Apr 2026 20:13:24.4781 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 8e5db563-47a8-406f-aff1-08de902b2106",
        "X-MS-Exchange-CrossTenant-Id": "f34e5979-57d9-4aaa-ad4d-b122a662184d",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[4.158.2.129];\n Helo=[outbound-uk1.az.dlp.m.darktrace.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n DU2PEPF00028D11.eurprd03.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-BeenThere": "libc-alpha@sourceware.org",
        "X-Mailman-Version": "2.1.30",
        "Precedence": "list",
        "List-Id": "Libc-alpha mailing list <libc-alpha.sourceware.org>",
        "List-Unsubscribe": "<https://sourceware.org/mailman/options/libc-alpha>,\n <mailto:libc-alpha-request@sourceware.org?subject=unsubscribe>",
        "List-Archive": "<https://sourceware.org/pipermail/libc-alpha/>",
        "List-Post": "<mailto:libc-alpha@sourceware.org>",
        "List-Help": "<mailto:libc-alpha-request@sourceware.org?subject=help>",
        "List-Subscribe": "<https://sourceware.org/mailman/listinfo/libc-alpha>,\n <mailto:libc-alpha-request@sourceware.org?subject=subscribe>",
        "Errors-To": "libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org"
    },
    "content": "Simplify _int_free_chunk() and always lock if needed.  Use _int_free_merge_chunk()\nfor cases that assume the arena has been locked  instead.  Move the errno save/\nrestore to _int_free_maybe_trim().\n\nPasses regress, OK for commit?\n\n---",
    "diff": "diff --git a/malloc/malloc-check.c b/malloc/malloc-check.c\nindex 49b623df12ffa7afe376b73b2ad222d357dc6612..d85986b23d1bb0beb5ccc29d380ca96daf8ef41a 100644\n--- a/malloc/malloc-check.c\n+++ b/malloc/malloc-check.c\n@@ -233,10 +233,10 @@ free_check (void *mem)\n     }\n   else\n     {\n+      __libc_lock_unlock (main_arena.mutex);\n       /* Mark the chunk as belonging to the library again.  */\n       (void)tag_region (chunk2mem (p), memsize (p));\n-      _int_free_chunk (&main_arena, p, chunksize (p), 1);\n-      __libc_lock_unlock (main_arena.mutex);\n+      _int_free_chunk (&main_arena, p, chunksize (p));\n     }\n   __set_errno (err);\n }\ndiff --git a/malloc/malloc.c b/malloc/malloc.c\nindex 6a888b0eb7de53ae7b814275e86d2bd2f06b5e53..af2a902320b2f671524ba826fe828ee65bfa9cda 100644\n--- a/malloc/malloc.c\n+++ b/malloc/malloc.c\n@@ -1024,7 +1024,7 @@ typedef struct malloc_chunk* mchunkptr;\n /* Internal routines.  */\n \n static void*  _int_malloc(mstate, size_t);\n-static void _int_free_chunk (mstate, mchunkptr, INTERNAL_SIZE_T, int);\n+static void _int_free_chunk (mstate, mchunkptr, INTERNAL_SIZE_T);\n static void _int_free_merge_chunk (mstate, mchunkptr, INTERNAL_SIZE_T);\n static INTERNAL_SIZE_T _int_free_create_chunk (mstate,\n \t\t\t\t\t       mchunkptr, INTERNAL_SIZE_T,\n@@ -2403,7 +2403,7 @@ sysmalloc (INTERNAL_SIZE_T nb, mstate av)\n \t\t\tCHUNK_HDR_SZ | PREV_INUSE);\n               set_foot (chunk_at_offset (old_top, old_size), CHUNK_HDR_SZ);\n               set_head (old_top, old_size | PREV_INUSE | NON_MAIN_ARENA);\n-              _int_free_chunk (av, old_top, chunksize (old_top), 1);\n+              _int_free_merge_chunk (av, old_top, chunksize (old_top));\n             }\n           else\n             {\n@@ -2674,7 +2674,7 @@ sysmalloc (INTERNAL_SIZE_T nb, mstate av)\n                       /* If possible, release the rest. */\n                       if (old_size >= MINSIZE)\n                         {\n-                          _int_free_chunk (av, old_top, chunksize (old_top), 1);\n+                          _int_free_merge_chunk (av, old_top, chunksize (old_top));\n                         }\n                     }\n                 }\n@@ -3171,12 +3171,12 @@ tcache_thread_shutdown (void)\n \t  tcache_tmp->entries[i] = REVEAL_PTR (e->next);\n \t  e->key = 0;\n \t  p = mem2chunk (e);\n-\t  _int_free_chunk (arena_for_chunk (p), p, chunksize (p), 0);\n+\t  _int_free_chunk (arena_for_chunk (p), p, chunksize (p));\n \t}\n     }\n \n   p = mem2chunk (tcache_tmp);\n-  _int_free_chunk (arena_for_chunk (p), p, chunksize (p), 0);\n+  _int_free_chunk (arena_for_chunk (p), p, chunksize (p));\n }\n \n /* Initialize tcache.  In the rare case there isn't any memory available,\n@@ -3350,7 +3350,7 @@ __libc_free (void *mem)\n \t\t\t\t\t  size - MINSIZE)))\n     return malloc_printerr_tail (\"free(): invalid size\");\n \n-  _int_free_chunk (arena_for_chunk (p), p, size, 0);\n+  _int_free_chunk (arena_for_chunk (p), p, size);\n }\n libc_hidden_def (__libc_free)\n \n@@ -3472,7 +3472,7 @@ __libc_realloc (void *oldmem, size_t bytes)\n \t  size_t sz = memsize (oldp);\n \t  memcpy (newp, oldmem, sz);\n \t  (void) tag_region (chunk2mem (oldp), sz);\n-          _int_free_chunk (ar_ptr, oldp, chunksize (oldp), 0);\n+          _int_free_chunk (ar_ptr, oldp, chunksize (oldp));\n         }\n     }\n \n@@ -4253,11 +4253,10 @@ _int_malloc (mstate av, size_t bytes)\n    ------------------------------ free ------------------------------\n  */\n \n-/* Free chunk P of SIZE bytes to the arena.  HAVE_LOCK indicates where\n-   the arena for P has already been locked.  Caller must ensure chunk\n-   and size are valid.  */\n+/* Free chunk P of SIZE bytes to the arena AV (which is not locked).\n+   Caller must ensure chunk and size are valid.  */\n static void\n-_int_free_chunk (mstate av, mchunkptr p, INTERNAL_SIZE_T size, int have_lock)\n+_int_free_chunk (mstate av, mchunkptr p, INTERNAL_SIZE_T size)\n {\n   /*\n     Consolidate other non-mmapped chunks as they arrive.\n@@ -4265,22 +4264,14 @@ _int_free_chunk (mstate av, mchunkptr p, INTERNAL_SIZE_T size, int have_lock)\n \n   if (!chunk_is_mmapped(p)) {\n \n-    /* Preserve errno in case block merging results in munmap.  */\n-    int err = errno;\n-\n-    /* If we're single-threaded, don't lock the arena.  */\n     if (SINGLE_THREAD_P)\n-      have_lock = true;\n-\n-    if (!have_lock)\n-      __libc_lock_lock (av->mutex);\n-\n-    _int_free_merge_chunk (av, p, size);\n-\n-    if (!have_lock)\n-      __libc_lock_unlock (av->mutex);\n-\n-    __set_errno (err);\n+      _int_free_merge_chunk (av, p, size);\n+    else\n+      {\n+\t__libc_lock_lock (av->mutex);\n+\t_int_free_merge_chunk (av, p, size);\n+\t__libc_lock_unlock (av->mutex);\n+      }\n   }\n   /*\n     If the chunk was allocated via mmap, release via munmap().\n@@ -4309,8 +4300,8 @@ _int_free_chunk (mstate av, mchunkptr p, INTERNAL_SIZE_T size, int have_lock)\n   }\n }\n \n-/* Try to merge chunk P of SIZE bytes with its neighbors.  Put the\n-   resulting chunk on the appropriate bin list.  P must not be on a\n+/* Try to merge chunk P of SIZE bytes from locked arena AV with its neighbors.\n+   Put the resulting chunk on the appropriate bin list.  P must not be on a\n    bin list yet, and it can be in use.  */\n static void\n _int_free_merge_chunk (mstate av, mchunkptr p, INTERNAL_SIZE_T size)\n@@ -4440,6 +4431,9 @@ _int_free_maybe_trim (mstate av, INTERNAL_SIZE_T size)\n      if ATTEMPT_TRIMMING_THRESHOLD is reached.  */\n   if (size >= ATTEMPT_TRIMMING_THRESHOLD)\n     {\n+      /* Preserve errno.  */\n+      int err = errno;\n+\n       if (av == &main_arena)\n \t{\n #ifndef MORECORE_CANNOT_TRIM\n@@ -4456,6 +4450,8 @@ _int_free_maybe_trim (mstate av, INTERNAL_SIZE_T size)\n \t  assert (heap->ar_ptr == av);\n \t  heap_trim (heap, mp_.top_pad);\n \t}\n+\n+      __set_errno (err);\n     }\n }\n \n@@ -4549,7 +4545,7 @@ _int_realloc (mstate av, mchunkptr oldp, INTERNAL_SIZE_T oldsize,\n \t      (void) tag_region (oldmem, sz);\n \t      newmem = tag_new_usable (newmem);\n \t      memcpy (newmem, oldmem, sz);\n-\t      _int_free_chunk (av, oldp, chunksize (oldp), 1);\n+\t      _int_free_merge_chunk (av, oldp, chunksize (oldp));\n \t      check_inuse_chunk (av, newp);\n \t      return newmem;\n             }\n@@ -4577,7 +4573,7 @@ _int_realloc (mstate av, mchunkptr oldp, INTERNAL_SIZE_T oldsize,\n                 (av != &main_arena ? NON_MAIN_ARENA : 0));\n       /* Mark remainder as inuse so free() won't complain */\n       set_inuse_bit_at_offset (remainder, remainder_size);\n-      _int_free_chunk (av, remainder, chunksize (remainder), 1);\n+      _int_free_merge_chunk (av, remainder, chunksize (remainder));\n     }\n \n   check_inuse_chunk (av, newp);\n",
    "prefixes": []
}