From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id meHyFR4/g2phRy0AWB0awg (envelope-from ) for ; Mon, 17 Aug 2026 13:04:30 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=efficios.com header.i=@efficios.com header.a=rsa-sha256 header.s=selector1 header.b=jDJqgZwr; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 54FBF1E09B; Mon, 17 Aug 2026 13:04:30 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 572421E09B for ; Mon, 17 Aug 2026 13:04:29 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E3B354B99F5F for ; Mon, 17 Aug 2026 17:04:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E3B354B99F5F Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=efficios.com header.i=@efficios.com header.a=rsa-sha256 header.s=selector1 header.b=jDJqgZwr Received: from YT3PR01CU008.outbound.protection.outlook.com (mail-canadacentralazlp170100001.outbound.protection.outlook.com [IPv6:2a01:111:f403:c103::1]) by sourceware.org (Postfix) with ESMTPS id 566CE4BA543C; Mon, 17 Aug 2026 17:03:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 566CE4BA543C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=efficios.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=efficios.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 566CE4BA543C Authentication-Results: sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c103::1 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1786986238; cv=pass; b=vTh1nXcDmRKfy4qV4hePcRHPojpfHiBMOjZpBthzHnOqJoBMRZpL05y5xuQnXSFJqge2W32hVM8Mu2SqxXHz1o9KI1gP+R7h1HlyX7uieKaOXJmxHXjokHHLqaFsBvD8qcnWXYqxsN89q7YsEdWlB0LO3/+Jw8Wq+LJtwiD83cU= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1786986238; c=relaxed/simple; bh=A9zbE1jLXWSrIi2trYnct9Ag19/p5GAD108Tjgs9v3M=; h=DKIM-Signature:Message-ID:Date:Subject:To:From:MIME-Version; b=rb+7fQMSuhbJTMToRv0A9AAodqZHtG4QtPFK6sZIzEZP3REIY5CQTq8iWOTnj4cf49NkNwUySiY/VuCLSJVJzkuLcar/E+PC53PI+LcLYbqX4DDwIMDvLaqR4zbnWabLG8Ob4dPXRWIdUv/his4T76NIAXupptIdPRiLU0X1spM= ARC-Authentication-Results: i=2; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=efficios.com header.i=@efficios.com header.a=rsa-sha256 header.s=selector1 header.b=jDJqgZwr DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 566CE4BA543C ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gMyR8wm7KN58r8P8mBDPiAxQNU8NVNFujLy0xYUf/VOUMwb+Xvg+1LVcVPuLSW/KKfQVojcCOM7GaGNFaKF1vfD3icXRAD8kCZyd2vQH9Zzf0N9fQ3dSjKIGbNhmbIrTrvEFY+Yi1u0bQC7Qe8tqes9hVFfAGdx70dzI22Hk6LS0CHa+VOsNTRzaIxTVIQNUGden40tat+ia/AjnWob466hw0NEwzH4G2Z4GPbfD1VuQz6CwovtmePk+gFd3KoEL9Aewy5t1rlFWnohvMbmuWHpwn0AYpTGkjKSmDGrGjK//Gfe8mG0iCz2CUSrJ3U+SMtHSoFneugHMkIMk+gpYZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=+2H4e+THtps5JBxC5yJg5yImTiNZ8nYYVkyM8eAhK58=; b=a90EpPUvdN1jpaLrEh6UXLEx8q/TY7PHMb2ZHDH2Zg/vC8MxxqbxrBKYEyt3hdB30FucWPoK+GNN3qh2034FPtlDv99wNiqhJ+SvUNOfa0jNhKIWyB1XfcrAlMkU+w/WiqyVKgvHVK4wFwM3827EgBRa6mX9lLZEwRID3fMAbYoaT8TlCguH7nUmjQvUSmuMmEFyvkS5R97IZBkknfcrf09qgyjSFUnTM1I3JF/w1cD7yYnr1UM9VjaeJPsOuOeeu+0HfYT0diykQ7//iX4wpKb0ghR624TcA01aukUUDvR2TfQG1Lc6uu3GKd/WWrqxwY9tLw2S629DGaVpCBILTg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=efficios.com; dmarc=pass action=none header.from=efficios.com; dkim=pass header.d=efficios.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=efficios.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+2H4e+THtps5JBxC5yJg5yImTiNZ8nYYVkyM8eAhK58=; b=jDJqgZwrwlt2O4EEKBn66M1yYnUtjiUIPgtWT5N07Sa/O0NS0SC9eF3TokPLYq7EzH3k2SZ4DtpW4zluGS6hLQ3eb45h3IuLaSy8xvJyLku06MdI7B2y/k68Cq0I5RT6j62raVkJoH2SlpabEAEfbu1ypJkUsw3QsGUuI3OWL6ieb44F4taK2vjYcxE0RFmX6pWIXfyfu6nt7txgi9UZZ7lMJhV+W5NIvQotIqrMJAgQKL49u3oV54PGXuYUPqFtpewKpcMCAHWQPXGmq4wB785JQYjLcBYXkb+VN2nSOcUyl5TTEmHIh05bj0cJ2LzLrk45FrdkUf/oeiSIsQUlKA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=efficios.com; Received: from YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:2c::6) by YQBPR0101MB8159.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:52::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.315.17; Mon, 17 Aug 2026 17:03:53 +0000 Received: from YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM ([fe80::bbfa:179f:fdc8:b15d]) by YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM ([fe80::bbfa:179f:fdc8:b15d%7]) with mapi id 15.21.0315.016; Mon, 17 Aug 2026 17:03:52 +0000 Message-ID: <37723293-9318-4a69-b945-d7c82d6d666d@efficios.com> Date: Mon, 17 Aug 2026 13:03:51 -0400 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 07/13] gdb/csky: remove uses of sprintf To: Andrew Burgess , gdb-patches@sourceware.org, binutils@sourceware.org References: <20260817151646.152571-1-simon.marchi@efficios.com> <20260817151646.152571-8-simon.marchi@efficios.com> <87jypo3e90.fsf@redhat.com> Content-Language: fr From: Simon Marchi In-Reply-To: <87jypo3e90.fsf@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: YQBP288CA0027.CANP288.PROD.OUTLOOK.COM (2603:10b6:c01:9d::13) To YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:2c::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: YQXPR01MB5418:EE_|YQBPR0101MB8159:EE_ X-MS-Office365-Filtering-Correlation-Id: 9f4abc8e-63ce-4c4a-fa88-08defc8183a1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|23010399003|1800799024|366016|56012099006|10067099003|3023799007|18002099003|22082099003|4143699003|5023799004; X-Microsoft-Antispam-Message-Info: YHBxg22pAmQ1gYD/GewbR0eIH21uaea0wf5jhGshkoSSy84gVytODcE3R9/WWh0jhJey9JhfJQC4MYtF36OSEpgoAT933D6BdHY06EulWFN2/PLmwmNzqg+mxENZUQxuS0l27vbz8+4sK8KMnCVDaF0LH034OushOzcY6m0kW43dg1jVCg0KxCTlmmERM/eaPRqExhbZKaiXasHjfEGiIDF6yP2We0G05bMUKFElOqEfUTJvdbvmNY61HfJ8buEKSeoX3wPPynLviAlo4NLynWZ/PScxCTDIJv/n427+zRBT6Ix4f4FvUSCWNnK4UF6WLDffjnGclDcRjVmUSOv15aToe2VuXQZkEoTKMGRmvB6o/CHPGowIiHJS8qeFOj+WvUELw6IS1yUrwXHL0adfrlQtqpFhWLYUeFrLKmQEOI49QrucOckrNJBmjeY8n6SMdvWDKVq/1vA86dbbF+uM6Ox2cHFnAPf+OjE29h5YAWWbXwHiNO3P9nO/aY66Xq9nq9u2+9l5Zs5NKtaYLfUr+madXBcCWH4EhyKBlwDjocC7eFkpX0cJvPrFhW2MkV94T917q2/kQjDEX2DaQ+fZ2nyUhmuvK1j7V1vk76U7PZH6rI6H+IT4xgnOdKnGcTJr41DMwB9akOP+oUi1swJozs2CF/1fqnRJPOjt6HfbjLA= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230040)(376014)(23010399003)(1800799024)(366016)(56012099006)(10067099003)(3023799007)(18002099003)(22082099003)(4143699003)(5023799004); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RTBFY2hyWXNoSkxveC91bmV5UTBvb3Z0WlViclZHaGh0ZjZnMkJSMHBmL05G?= =?utf-8?B?QmIwR2Z6VWtTK3A5RjBhYVpEYkJSVGdYUGl6bnJYbVFCZURvbkhUVCtGNkxX?= =?utf-8?B?SmRJc1R1bUtkRm14N2gwVncxWFV5NTRMMzFnL3dYclVnZ3Q0dG9FRnZhMDlX?= =?utf-8?B?U3RYNS9rTGtubG5UaVVySXRhQlB5dVdCMnNyWTZxeE1vSUFEaktMdTZzRVRY?= =?utf-8?B?eG5sMmVpL3FQU2JZMUlzeUtRa2VxekNSdk5ZY1h1MFM3KzRpbHRrdEpKdVpk?= =?utf-8?B?bWJWWlBKTjZDZHRpUld0SHppT2ZPcHdISkVvT1BxMU02Rk9kMDRJdGxBbDVW?= =?utf-8?B?c1p5NkVITmZ6ZXhsdTBoMXJBL094UlRLVWc3MjJlMnMyTzZMK3VlY1QrV1dz?= =?utf-8?B?RXdWSE5BUFJQTjlIRTM2UlNSRStxU1lQQzZCaVdOYkFrayswWlZ1K2FlMVRh?= =?utf-8?B?SE9DWmtEcWtFNldscmZKdUs1dDNndVlOcmJ2a05NNFhPS1NnUFNJYitaWjJL?= =?utf-8?B?ZHNOZTVmMm9PSHdyd3NaS2RDSWs5YmhPTFFiT21WaUF0a2lEYS81djh3cnRx?= =?utf-8?B?NHJqc2NYRklHZ3AvRnRkclRHV0NveFZudGtkMXhMT3NrWitzVzdsbUFaSUpH?= =?utf-8?B?djZwZEVMa05CRFVFTnREM2RXWUVzd2tIb0NHUldueG84Zm9DRlFCVnQyQ2tj?= =?utf-8?B?My85SHB5dDB3SkNkTmszVFU1NDhCcnJXQzQyWm5rWjhia0hvckE0VVFzbm9a?= =?utf-8?B?R3NjZGVUOUVlaURWM3oxOXhka20yWXBObTdsOHhGZUVNaU9pMllxcUhxQmNJ?= =?utf-8?B?cEhhenB5bjFCcVBMNlhVRUNsZ0JUNVdYU2F6Z1BvTTVPTlFCai9DWUVDTTFR?= =?utf-8?B?U0V4NFRna1pUanF3R2xlamp3MHNYVjBESDhMcENuMlJocld2eXFZOU90WlQ4?= =?utf-8?B?WVZscFViRVJoU0t6TWp5ZnJZd3UvL3E2S1d3UmIvYUhsSGMyazVCcFVKNzlh?= =?utf-8?B?VGtCSlVBeG5BRVJ2dlI2dW9ZZ2RrTG1JSDNaRnVlUlhqUUh3ejRWaE9OQTFL?= =?utf-8?B?YjBhWVNmRGptQ3VOOW1nVHppOUNISVVpOG1lT2paVmxCOTExalVvN0tPRitw?= =?utf-8?B?Ykp3S25jSXRVUUNZT3FlL1BXcGdMbnlDaWI5YXgyeGhRTFFrQ1NST2orS0xB?= =?utf-8?B?d0RxT0REZ1JaMTJWQmIzUmw2YzhzY3pMMWh3aVVDSm5GZmJKMEZETGR0b05C?= =?utf-8?B?b1JWVFFjRkF0TlB2bXlid1N3KzdZNmo4OUkrdXRlS0VVLzJmNk9iUk1rc3A2?= =?utf-8?B?UDgwNUd0RnZMMnIwVXdyV2Raa0FwbFR0ck9QbFc3TmU5OXNzRzZHb3RjYW5E?= =?utf-8?B?L0hab2UyS0xwZVIvd3cvR25TbjRtckp2ZThqckxidUw0c1drR0RmV3BaczQ4?= =?utf-8?B?QnFQb2V0Yk00WTVjWmpkV0EvRENMTGVlajJaNCt4ZDJpMGJUMExqYkZoVjFp?= =?utf-8?B?bzM2SXVBUmZneC9xOG13V05sSWJiQUpDWE4vWkNuOXJRcjdqZW9wS3l5SU5n?= =?utf-8?B?UzZQTkYzMjFpWGs0UGxLMVZDZzNVRnNpcGF2YmZxVXJwM2RVQm13Q3pGZ0xr?= =?utf-8?B?ZVpPeUc1MWVuKzRHaUxQUGpBSStRTS9zTFJXK1p0K3g2VFZyZ0lST20zQ1Rs?= =?utf-8?B?S3QzVTRjOXpSaklMNWwyQ2d0bGZuNGNudnJNOGdOV1NRRHBrNVZSUnhSWXdp?= =?utf-8?B?MW1hbDFvbXNNNUlOQWxuZjdCVzNxb2RhaXVsRytQRllVMmovSGRpdzFnT3dt?= =?utf-8?B?Z1crRVRCbFMvNTdGeVBaR0VjRkIxR1lxdUQ0NHFrdnczWDNCRXRlSnh2K2Zs?= =?utf-8?B?VEs1N2VDS0ZDQUNybC9NMkdoTEkvZnJ1Wmhaamw4dS9CVVpPcGtzbTV1WXFu?= =?utf-8?B?QTV5bWJGZ0xENFJCSlJLK3k1WnNzWXE5dFYvblkweEFKSjkxOEZXd1ExdFor?= =?utf-8?B?TlI4QUFwYThJWTJObExuSUFuaFpsR21nRkpWMFUzNFcyZW5lVmRkOTVnSlZB?= =?utf-8?B?c1hQdVdCVkFsZXc2Slh0U2JKdjU1RkRMWjJMT0JJNjNuVy9PQ3IrdnlDODhF?= =?utf-8?B?MDdXeFVacit4enpSSUx6L3ZSOFBrR25sSkFUUVJsK0JwenE5SGJOQzJjSjg4?= =?utf-8?B?NEkxa3hLcDcwS0hkVGtSNS9ONExqVHhXNFRSV0FkNVFzVXFuZXBTWER4ZXJl?= =?utf-8?B?VWJ4Q3Y5Rkh6WmdidzRCdTNBMlVJUG4rb2pNeWhwNFB3R2JmVE8yWDdYM2Ux?= =?utf-8?B?M3BtRy9udEFQbkpxRHpnckR0d3p3TDBRRVZYeitqZDBnZXlGcE9aUT09?= X-OriginatorOrg: efficios.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9f4abc8e-63ce-4c4a-fa88-08defc8183a1 X-MS-Exchange-CrossTenant-AuthSource: YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Aug 2026 17:03:52.5099 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4f278736-4ab6-415c-957e-1f55336bd31e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bjlObRXxf4ohz3SykBr/EdU7Pl1tn1aiJbnY4tO0uPeKI6Ty7QApHXaHCbfuMgTtqpThA2vvqgaj9rJfrwrwEA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQBPR0101MB8159 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org On 8/17/26 12:26 PM, Andrew Burgess wrote: > Simon Marchi writes: > >> When building on macOS, I get a few: >> >> /Users/smarchi/src/binutils-gdb/gdb/csky-tdep.c:434:4: error: 'sprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Werror,-Wdeprecated-declarations] >> 434 | sprintf (tdesc_reg.name, "cp1cr%d", remain); >> | ^ >> >> Replace these uses with snprintf, via xsnprintf, which asserts that the >> destination buffer was large enough for the output string. >> >> Change-Id: Idc5c0c42479f767c63b0d0cece5ab14cacec9a60 >> --- >> gdb/csky-tdep.c | 15 ++++++++++----- >> 1 file changed, 10 insertions(+), 5 deletions(-) >> >> diff --git a/gdb/csky-tdep.c b/gdb/csky-tdep.c >> index e86f79a42eaf..ad0d50d8218d 100644 >> --- a/gdb/csky-tdep.c >> +++ b/gdb/csky-tdep.c >> @@ -431,19 +431,22 @@ csky_get_supported_register_by_index (int index) >> { >> case 0: /* Bank1. */ >> { >> - sprintf (tdesc_reg.name, "cp1cr%d", remain); >> + xsnprintf (tdesc_reg.name, sizeof (tdesc_reg.name), "cp1cr%d", >> + remain); > > Rather than having to include the size of all these buffers, where the > size is known at compile time, I wondered if we could add something > like: > > template > int xsnprintf (char (&buf)[N], const char *format, Args &&...args) > { > return xsnprintf (buf, N, format, std::forward (args)...); > } > > to gdbsupport/common-utils.h. This is fine except that gcc is unable to > track the format literal through the template call, so I think we'd > actually have to do: > > template > int xsnprintf (char (&buf)[N], const char *format, Args &&...args) > { > DIAGNOSTIC_PUSH > DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL > return xsnprintf (buf, N, format, std::forward (args)...); > DIAGNOSTIC_POP > } > > Which isn't ideal, though we do already have things like this in > gdb/printcmd.c, so maybe it's OK. > > The other option would be C varargs style handling: > > template > int ATTRIBUTE_PRINTF (2, 3) > xsnprintf (char (&buf)[N], const char *format, ...) > { > va_list args; > va_start (args, format); > int ret = vsnprintf (buf, N, format, args); > gdb_assert (ret < static_cast (N)); > va_end (args); > return ret; > } > > Or similar. The benefit of this would be that you could then write: > > xsnprintf (tdesc_reg.name, "cp1cr%d", remain); > > And you'd still get the buffer length check. > > Anyway, it was just a thought, not a requirement. The patch as it is > looks fine. > > Approved-By: Andrew Burgess Thanks the the suggestion, I will attempt to do this on top of the current series. Simon