From nobody Fri Jan 17 18:23:44 2025 X-Original-To: dev-commits-src-all@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 4YZSmJ6Kbvz5lHs1; Fri, 17 Jan 2025 18:23:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (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 "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4YZSmJ5Zt0z3ffF; Fri, 17 Jan 2025 18:23:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1737138224; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pd5vxJ2qpJQnowbkWVC57VfyfKlPQePd21RjU2AY+XQ=; b=VbYjfN7dBSKc7bzk/VPIaHzupmIVSeWB2tJxTRvgLMkODK1OmlIbDoudPIrgRhF8EhnPri qpQFUh7InsxWi9VcuZDpAKmhbiMKnvY3HCtI2UGVayvTnG/0GKOIKFQPg1+QZpNIGDtR5p gEoJmhm5I3b4rVGbQ4XNAqZNpPmGZ0Bp80wvxwuu2Eo0DMhcERMoo/N35xtaV4wSQC9VjE FCROwYqJlCAmW3eyXf5FNgVb+3XzXGAJM9ev0NEA4/dJ2l8eshFLSjqA3izAA4LqOzV2ZP suwbOyDHOc/4jRqgsQuvMvGykOgqZdqHH96J4Xc4mQL6B+tMKIuqbj42Sx/WTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1737138224; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pd5vxJ2qpJQnowbkWVC57VfyfKlPQePd21RjU2AY+XQ=; b=nj+QZBJLh38QN0DLlDuloeSGPmZNa61LeiIsVQ2tM97hJ3eVZ9nFv/fH6gnXZa2PoouoaC 7GJwANigfsIO5/kNyWE0P02nmQtPkzKwF++HxAXOGT3/m1W2EQXFICs/uAvBdcB6fXjDsr JKKCO0QJ/T0B12FnGcZALgG18LtL46HSG8Nhmf1vmm0iplcl4EPPUOlg1XvtJa780z5mOj VAHBZACEFSugAjkiSegEa6iDlXnMabzkbOMv9ajRTGTxQ1fP+N1uvKMx1OQD5GkvNwXX5r LfJTAR9B7l9Iq6g4qOjr8udg6Kb2kwNxvchtxDdAQCSrPKTchpK3QRd2L4f/IA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1737138224; a=rsa-sha256; cv=none; b=HtQ3vUUYLzPgpGNugsQZ5B+6jOsLKfBG1QTlwN2QSUl5lH6Wmr7hCtQY4D0i6vGfTjjuhu +i3fdFmophe7Zze4SaSmwrmQatPs6QOAqtiNyOgANxrxrmOTdKUtyrZVWBHLLdnY+lObpN 1FKw35g9B1bKgYBRcdGMvXgAHtsXNdqSD3ZreOXqRnoxogQiaMLPRiXf0tYbpBSONn4foP M1uNSdyR4sJWI21byqTmNvEYCPqSN1eOtXrj87H8NmT2I4QYT9K4CbVLCRz0yKGYxu0ZtT m5UaVmNaDs68P319+yfWjv675YUt2nX2S/riLgTTMhb70DHgqI7ZadEVdtFy9A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4YZSmJ55vWzD4D; Fri, 17 Jan 2025 18:23:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 50HINiLm027329; Fri, 17 Jan 2025 18:23:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 50HINin7027326; Fri, 17 Jan 2025 18:23:44 GMT (envelope-from git) Date: Fri, 17 Jan 2025 18:23:44 GMT Message-Id: <202501171823.50HINin7027326@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste Subject: git: 473681a1a506 - main - libc: Fix getentropy POSIX 2024 conformance issues List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 473681a1a506daafdae17900fcb42830e0dcb26e Auto-Submitted: auto-generated The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=473681a1a506daafdae17900fcb42830e0dcb26e commit 473681a1a506daafdae17900fcb42830e0dcb26e Author: Ed Maste AuthorDate: 2024-11-16 15:14:21 +0000 Commit: Ed Maste CommitDate: 2025-01-17 18:23:23 +0000 libc: Fix getentropy POSIX 2024 conformance issues GETENTROPY_MAX should be defined in limits.h. EINVAL is the return value for buflen > GETENTROPY_MAX. PR: 282783 Reviewed by: markj, asomers, jhb Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D47689 --- include/limits.h | 4 ++++ lib/libc/gen/getentropy.3 | 14 ++++---------- lib/libc/gen/getentropy.c | 5 +++-- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/include/limits.h b/include/limits.h index 99cfa67b3ed2..ed8844e65642 100644 --- a/include/limits.h +++ b/include/limits.h @@ -137,6 +137,10 @@ #define MB_LEN_MAX 6 /* 31-bit UTF-8 */ +#if __POSIX_VISIBLE >= 202405 +#define GETENTROPY_MAX 256 +#endif + #include #if __POSIX_VISIBLE diff --git a/lib/libc/gen/getentropy.3 b/lib/libc/gen/getentropy.3 index 5bbbc80e2414..5f7ee32ebbfc 100644 --- a/lib/libc/gen/getentropy.3 +++ b/lib/libc/gen/getentropy.3 @@ -15,7 +15,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd November 20, 2024 +.Dd January 17, 2025 .Dt GETENTROPY 3 .Os .Sh NAME @@ -60,8 +60,8 @@ The .Fa buf parameter points to an invalid address. -.It Bq Er EIO -Too many bytes requested, or some other fatal error occurred. +.It Bq Er EINVAL +Too many bytes requested. .El .Sh SEE ALSO .Xr getrandom 2 , @@ -69,7 +69,7 @@ Too many bytes requested, or some other fatal error occurred. .Xr random 4 .Sh STANDARDS .Fn getentropy -nearly conforms to +conforms to .St -p1003.1-2024 . .Sh HISTORY The @@ -80,9 +80,3 @@ The .Fx libc compatibility shim first appeared in .Fx 12.0 . -.Sh BUGS -.In limits.h -does not define -.Dv GETENTROPY_MAX . -Some error values do not match -.St -p1003.1-2024 . diff --git a/lib/libc/gen/getentropy.c b/lib/libc/gen/getentropy.c index ff5475f9fdb0..6b8ad697b7e0 100644 --- a/lib/libc/gen/getentropy.c +++ b/lib/libc/gen/getentropy.c @@ -30,6 +30,7 @@ #include #include +#include #include #include #include @@ -47,8 +48,8 @@ __ssp_real(getentropy)(void *buf, size_t buflen) { ssize_t rd; - if (buflen > 256) { - errno = EIO; + if (buflen > GETENTROPY_MAX) { + errno = EINVAL; return (-1); }