From nobody Fri Sep 12 10:59:26 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cNWdr4Rbsz67JYN for ; Fri, 12 Sep 2025 10:59:28 +0000 (UTC) (envelope-from des@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cNWdr3V9yz3WTC; Fri, 12 Sep 2025 10:59:28 +0000 (UTC) (envelope-from des@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1757674768; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MUYVo8kiK8DF63O25yyeJTjpHqVmbkB0c7MGreQepWM=; b=rYz1X4FqAG9OMNmbDwPEIV+VrY/KRXhl+jUPIn9BAZrAlrFsX/OQ/TdN/RQvN0ARNM4C0I MEq9SKHnm4ECtwGCbnd6k/BqSoiqi9HEy3QkJkxN8kgrl/b4jwAVKiKp7y30Bi4mFPBwqq GnqhUM9hUi0I0dFj7Xi99Hp6ZThvZBqHA7Lom8QIdtYwsgUU/TynMASp7szsAXR/yHMCK5 Re80QUwC+9V/rK+JO3LQjejqFp81tEIov/b9Nfm1RrlYsdW9gHxbum8B2amp+QySn27kNK d1ykcyF4hDvyp01W75kRHSILoeP/wv0MAqurFaKi4vYaTV3fSM37r8ewmfP9wA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1757674768; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MUYVo8kiK8DF63O25yyeJTjpHqVmbkB0c7MGreQepWM=; b=fDozQuylTFwS4fgCbUuwFqjd4Uwyw5Jv25ZZon5OeDLoDJLqVhvrXzEXskrd/AYkGj3GIg G1gykUUlOeRK4dhXa6qEjbOGiW8soWM8xhmvGFd27BHe6SwsHCkJoxxWtCufXwsvHxiiTB q95bl4OEmZWd4F7LFaXkgVAjBDkibX7gyUjzqjuXtakGTsrsjKgJ2YFJyS83yGEcCANaQR yjix3EUYy5EHNzJliO5PP2B75Bnv9EZbYMWrc9yjlKmrSgALpuprv3XfYjUwcPH7P+v5wK Yx3Lvcix9+u5q8L9Wtif7pfqvpT3pwcXIXz9eDWtkBnnutqoY3fWGSA2f6Byfg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1757674768; a=rsa-sha256; cv=none; b=PPpwUa8HwPISJ3MgIk8TrTc8NJBhqYb9DE9IsR7bamz4ydZHRhZmMaMF0tby5H+7CXMHQB GUWffsBzatQQAxZp3djKaX7vfcQU20h6zRE6zAcoPSs1gRGlhEkfXg3v4X+mfbrB1dKah1 4bPIk388z9F+jJL2j23T2wY+h4AA97IfNJwldVUdpkcUgLu5rDeUWsqICpQRiGf0DnxTsQ KHh+ScNYS0V+8yAkRAIz1yuyR1WGQpVLfStMkE27JDQ1nw3sXOo0yxJBIKPBenZdvKD2uz JMu7tivGvYnY5xD/Wqq4l+usAbEnUUbL2s6/o6nUrgmcOQtVZzK02LwpbWgbLw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from ltc.des.dev (unknown [IPv6:2a01:e0a:c54:bed0:922e:16ff:fef1:acef]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: des) by smtp.freebsd.org (Postfix) with ESMTPSA id 4cNWdr22S6zQr2; Fri, 12 Sep 2025 10:59:28 +0000 (UTC) (envelope-from des@freebsd.org) Received: by ltc.des.dev (Postfix, from userid 1001) id B88034BEA9; Fri, 12 Sep 2025 12:59:26 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Bob Bishop Cc: Olivier Certner , FreeBSD Current , Alan Somers , Toomas Soome Subject: Re: git: d549de769055 - main - libc: Remove readdir_r(3) [This broke building rust 1.88] In-Reply-To: <0F481EDD-24F4-4F2C-BCBB-9B016DD313F3@gid.co.uk> (Bob Bishop's message of "Fri, 12 Sep 2025 11:19:54 +0100") References: <1F6A4621-1505-4F78-97C6-85EA556B2165.ref@yahoo.com> <4148862.BRNeRiNLvY@ravel> <0F481EDD-24F4-4F2C-BCBB-9B016DD313F3@gid.co.uk> User-Agent: Gnus/5.13 (Gnus v5.13) Date: Fri, 12 Sep 2025 12:59:26 +0200 Message-ID: <86qzwcgcmp.fsf@ltc.des.dev> List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Bob Bishop writes: > And while I=E2=80=99m here, POSIX.1 defines for readdir_r (and readdir): > > [EOVERFLOW] > One of the values in the structure to be returned cannot be represente= d correctly. > > =E2=80=A6which I think would cover the case of indeterminate NAME_MAX/PAT= H_MAX for readdir_r. No, because readdir_r() has no way of knowing the size of the buffer that was passed to it. Moreover, our readdir_r() is a wrapper around our readdir(), so if the reason you're using readdir_r() is that you consider readdir() unsafe, congratulations, you played yourself. The only argument in favor of readdir_r() was thread safety because some readdir() implementations used to return a pointer to a static buffer, but was never the case for FreeBSD. Our readdir() is thread-safe as long as you don't have multiple threads operating on the same DIR. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@FreeBSD.org