From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id hvEeOE4tg2rMMy0AWB0awg (envelope-from ) for ; Mon, 17 Aug 2026 11:48:30 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=Aq98RDeG; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id D42571E033; Mon, 17 Aug 2026 11:48: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=-6.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,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 [IPv6:2620:52:6:3111::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 4A19B1E033 for ; Mon, 17 Aug 2026 11:48:30 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D79074B9DB53 for ; Mon, 17 Aug 2026 15:48:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D79074B9DB53 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=Aq98RDeG Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTP id 5E7224BA9003 for ; Mon, 17 Aug 2026 15:48:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5E7224BA9003 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 5E7224BA9003 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1786981680; cv=none; b=rNfJbC24Ns3FoPetSA3qbqSlvwKpS4DufXfVTEuiAvtsdCRoI7888/Ivn6UVJc7W/c96eEHWcpnhPWhOMpz1PURTpnP9jGIyWIRmlzGGTZsvGyVj4IpE2pt62V2hqgZxRusrRmYfuC1e4RDcA/7nwzh54ntsghOp3e0BSwxOGuE= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1786981680; c=relaxed/simple; bh=N/4ulhyFMnJEkim08HcAIeNpgn/OHUZ/Wqu3T3usDT4=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=s+HHUY+FHouniyPGT27Y7GS+1CInij4QjpMO0TEh8boCceHCqsZO442NJrfTEs1tNRObn4gKE0/TvSxneNgBySFRtp9Tq3Nv2mMFfdXxJ+nvVm9EyEnFAI6PCI0qul3a96HiL1X8mx9tiM2hRZ5Z+xfqKGmQFw8HJONL3Rjw3WE= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=Aq98RDeG DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5E7224BA9003 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1786981680; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=mJtyW3zzMLl3pSatVcwiBDqWs9zOEz9P44VbeYWWoig=; b=Aq98RDeGpKaDAGr8H3NihSG7JFfGB048OlpVmdR/CbiMIzHaX2hn0EEUg/uv65vP8yt4tW aPeD67TDUBspljqSWtV90dMjAdHpHkHRUzWQBLtGItMJnrsALHje/9WqJxuV6onHcFxuyN 4GSry3NLXS4VAUF89l/vju0it1JOej0= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-125-NhHNfO5MNvOaIIbd5Hd9fw-1; Mon, 17 Aug 2026 11:47:58 -0400 X-MC-Unique: NhHNfO5MNvOaIIbd5Hd9fw-1 X-Mimecast-MFC-AGG-ID: NhHNfO5MNvOaIIbd5Hd9fw_1786981678 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-4955843c6cdso34215965e9.1 for ; Mon, 17 Aug 2026 08:47:58 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786981678; x=1787586478; h=content-type:mime-version:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to:content-type; bh=mJtyW3zzMLl3pSatVcwiBDqWs9zOEz9P44VbeYWWoig=; b=l3vvQiDKdMJ3htsbZYeph+5WwuHNki6AyeG3RBUOXTgviyST7xQyTAG9uSjafHIaHW TbK1hg4dTm27xJOE2OV1esVuTJ9HiUhXgDzUCP/snTjBNGBLTsvULDqZeFpf0BMKHhCh swh8Ca2d93+zCeK8oWPX6WTcOgc82N1ZspcH6zsKIvW3OYwWRILoU3aQw6nHXvMU/5dj LWq3e7rpFpzipL96DTEBmQ6dGhodrCStC8lvvwfZbht7lDUUNjF6g6cycbdFL4655NqV fB/ZLA37v7EzuE2kAClZm+lllfZPkbtfPnYnrtFwuMSWZStTGDV3xtoTdLbWr5eTJRYv +xwQ== X-Forwarded-Encrypted: i=1; AHgh+RqG0xtO2hIEDenD1a5wbVAgqnu9Ns/Sx7yBibO9gXt0woGNk9UFKlEmRPYdBVf+93WvFaRIedaBwyMGzA==@sourceware.org X-Gm-Message-State: AOJu0YwmianCV3wX/ovL2jeKo3nA0eQcJXI9Sh6aznlW6sYLi12d0VU7 8E9lm2s8GYCYzqsP7xVOKUt3nAsOdrGjn8MOAqgTCd6Hv83L/7DhDjIppaMRqFnFPXbabIuguzD UP/Q/eutCVFqleYiJDrasLGwLEMySrwezoounillBt5klPDQjJL9FUuRFMLUlPNE= X-Gm-Gg: AR+sD13ljqf9oj8jnmDt75H8qsXjVNm1I5btvd/GS2QoKyU0u6vpomdxNZ4Z2OkJUa0 oYR/IyjIVnmRud7FefYT96rrhEUnTBuSE6YlhdX7CqzqvEVwsp1rsVm35XU0WoO2gd1pVv4bEVa BRp6+rTBjnxc471KbIg5bHY56wKx/rxw9z+PszN1Ioa30AzFDIvHLXLxFSV+6dUC4q2c09sVid2 poJHZmKUCshTCY9/HLoavnpJYjrBYNa5l1jpu+yEOLsy0O29QLqugAj0sEzBd+rlOwPAC1QxZVh /gGYTvTGriIyzH/OHadUf6mKJGJVEQHImLzYZeHJ/8XlL46A71elb+xi93e6reGDZC6jFCPOdo4 j1scnWt7doKoJz4ckmlA= X-Received: by 2002:a05:600c:6289:b0:499:84fe:ca8c with SMTP id 5b1f17b1804b1-499879332e1mr359685675e9.5.1786981677678; Mon, 17 Aug 2026 08:47:57 -0700 (PDT) X-Received: by 2002:a05:600c:6289:b0:499:84fe:ca8c with SMTP id 5b1f17b1804b1-499879332e1mr359684995e9.5.1786981677254; Mon, 17 Aug 2026 08:47:57 -0700 (PDT) Received: from localhost (67.72.115.87.dyn.plus.net. [87.115.72.67]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4999d0fb85csm69964745e9.11.2026.08.17.08.47.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Aug 2026 08:47:56 -0700 (PDT) From: Andrew Burgess To: Simon Marchi , gdb-patches@sourceware.org, binutils@sourceware.org Cc: Simon Marchi Subject: Re: [PATCH 01/13] gdbsupport: remove uses of vsprintf In-Reply-To: <20260817151646.152571-2-simon.marchi@efficios.com> References: <20260817151646.152571-1-simon.marchi@efficios.com> <20260817151646.152571-2-simon.marchi@efficios.com> Date: Mon, 17 Aug 2026 16:47:55 +0100 Message-ID: <87pkzg3g0k.fsf@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 7qf3NFxy7VJsSYEulkVqHtrELebzfFdHURXmHAimveM_1786981678 X-Mimecast-Originator: redhat.com Content-Type: text/plain 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 Simon Marchi writes: > When building on macOS, I get: > > CXX common-utils.o > /Users/smarchi/src/binutils-gdb/gdbsupport/common-utils.cc:106:3: error: 'vsprintf' 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 vsnprintf(3) instead. [-Werror,-Wdeprecated-declarations] > 106 | vsprintf (&str[0], fmt, vp); > | ^ > /Users/smarchi/src/binutils-gdb/gdbsupport/common-utils.cc:128:3: error: 'vsprintf' 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 vsnprintf(3) instead. [-Werror,-Wdeprecated-declarations] > 128 | vsprintf (&str[0], fmt, args); > | ^ > /Users/smarchi/src/binutils-gdb/gdbsupport/common-utils.cc:166:3: error: 'vsprintf' 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 vsnprintf(3) instead. [-Werror,-Wdeprecated-declarations] > 166 | vsprintf (&str[curr_size], fmt, args); > | ^ > > We know that those calls should be safe because we computed the size that > fmt+args take just before, and allocated that many bytes. But I also > don't see a real downside in switching those calls to use vsnprintf and > double check that everything went right. > > Change the type of the existing "size" variable in "string_vprintf" to > "int", since that's what vsnprintf returns. Approved-By: Andrew Burgess Thanks, Andrew > > Change-Id: I589d9a170fdd15cc31b44b76689c6d8c324e340a > --- > gdbsupport/common-utils.cc | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/gdbsupport/common-utils.cc b/gdbsupport/common-utils.cc > index 3ae3afcc380b..f31699be13a1 100644 > --- a/gdbsupport/common-utils.cc > +++ b/gdbsupport/common-utils.cc > @@ -92,10 +92,9 @@ std::string > string_printf (const char* fmt, ...) > { > va_list vp; > - int size; > > va_start (vp, fmt); > - size = vsnprintf (NULL, 0, fmt, vp); > + int size = vsnprintf (NULL, 0, fmt, vp); > va_end (vp); > > std::string str (size, '\0'); > @@ -103,7 +102,8 @@ string_printf (const char* fmt, ...) > /* C++11 and later guarantee std::string uses contiguous memory and > always includes the terminating '\0'. */ > va_start (vp, fmt); > - vsprintf (&str[0], fmt, vp); > + int ret = vsnprintf (&str[0], size + 1, fmt, vp); > + gdb_assert (ret == size); > va_end (vp); > > return str; > @@ -115,17 +115,17 @@ std::string > string_vprintf (const char* fmt, va_list args) > { > va_list vp; > - size_t size; > > va_copy (vp, args); > - size = vsnprintf (NULL, 0, fmt, vp); > + int size = vsnprintf (NULL, 0, fmt, vp); > va_end (vp); > > std::string str (size, '\0'); > > /* C++11 and later guarantee std::string uses contiguous memory and > always includes the terminating '\0'. */ > - vsprintf (&str[0], fmt, args); > + int ret = vsnprintf (&str[0], size + 1, fmt, args); > + gdb_assert (ret == size); > > return str; > } > @@ -152,10 +152,9 @@ std::string & > string_vappendf (std::string &str, const char *fmt, va_list args) > { > va_list vp; > - int grow_size; > > va_copy (vp, args); > - grow_size = vsnprintf (NULL, 0, fmt, vp); > + int grow_size = vsnprintf (NULL, 0, fmt, vp); > va_end (vp); > > size_t curr_size = str.size (); > @@ -163,7 +162,8 @@ string_vappendf (std::string &str, const char *fmt, va_list args) > > /* C++11 and later guarantee std::string uses contiguous memory and > always includes the terminating '\0'. */ > - vsprintf (&str[curr_size], fmt, args); > + int ret = vsnprintf (&str[curr_size], grow_size + 1, fmt, args); > + gdb_assert (ret == grow_size); > > return str; > } > -- > 2.55.0