From patchwork Sun Mar 16 09:07:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kang-Che Sung X-Patchwork-Id: 107949 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2CB043858C51 for ; Sun, 16 Mar 2025 09:08:38 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2CB043858C51 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=YMZsQpzq X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) by sourceware.org (Postfix) with ESMTPS id 8A3123858D20 for ; Sun, 16 Mar 2025 09:08:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8A3123858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8A3123858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::530 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1742116080; cv=none; b=qX0i1Lw/u98pOG2NzfmYjENKC2y03CgPsoYdlogVBiTn6mZoW6QoobCftTFJ7z+fulcQG2tjJjL5B9P5SDuvcxIHZ8mXz3CgtF0XLemMki3DmjZjtjgG01iy0QT2Df4e72qJzb9IqehLndFmFW2BJYR4KCuhexWR01rYpviXrlE= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1742116080; c=relaxed/simple; bh=ycyQ0mHyY8AWWeBNWs+B4ZwguGY9+hJM8Y/zvh6UbXk=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=iKAUjTIp68tWbl19Wn8aouWFJdfCHIHlbnR2xnIRzsv7oSHn0cLbdteDV/bGR94SnNaydRWlmQVrf5B+62W5jdalrY5gSRKGQm5BhjAj4cLosJZdvdY7fWLhTTlqKGEVkv6TiVy22bmiz7mLKvubxgdSZqEug4+2umEZ/4Hbxbk= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8A3123858D20 Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-5e6ff035e9aso6652300a12.0 for ; Sun, 16 Mar 2025 02:08:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742116079; x=1742720879; darn=sourceware.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=XmzR0pILeubEE+paL0+QMuPr0xYr52RMOpKggPl+g7o=; b=YMZsQpzqt+3z54UEQ460Xl0CPUtGLyBUgsFE135lGR2hHVEM9l9oeiNz5s5Ly1k7Jd qSZj7wxlMScKKEwaKe/jXUWWGC/xbb8naXQplTQg3ltUTWdOOgkYJJj/FteXA/Kf/Cj5 tGArBcMp43Xvd6XRZl8Ma8ZGm9dlYZNwjmYqcb6larH+z2i6RJqvEAJMAxWCRMMe3s8c QoItIWQPMmsq7XweidIBVre/kDFEEmkTn1RU/NsM80bbTiXJzAuu8gbh0ndEUhMNJFnZ JtIfX6FWu6RrOLwgzG77glx1POfBrvF1lczPrPC0JP+UTWccIvFIVTWeSUkBLQkbAChu sXxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742116079; x=1742720879; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=XmzR0pILeubEE+paL0+QMuPr0xYr52RMOpKggPl+g7o=; b=qk2W0jnwu6Jrk2CofHB6XV4K9hYcJ9WjK0EfVFWEZxE94ANynUhIbGI0l5e1o9Zr7L snWXEgtdk2NHRv5pKD470YJafZTGldxkCgnTB3ZUxPqRok8lhTPijUXqOl+aev+HsrNP YSeScmz8kfkOptb22gkR/wNReFScHBf2On5tXM1xtXZDF69ndCmofCAbg+i6lZ7pPZJT Rm040TVrCsj+/3LIdhSkZV5jzVmje0uG1fwidTw9ZIq/h5s3MpsCMtWck2IPZ85N7UWs PE7UHNdEUpxaT2MUPHo1McEu0ahzCeX7qq+dOFJLe1C4wDOO5H15a1lCm3xm/8YLqoX/ 1UaQ== X-Forwarded-Encrypted: i=1; AJvYcCXUhEzAwCNfIBTms5mQtESmKd4oSIbZob77kEXouIyGNlAUDDdeAVq8kgynQa59EEAPfWQ8hUhKaQgd@sourceware.org X-Gm-Message-State: AOJu0YyauA+PmXoYzcgdxS4DVvMyJ7gWzzcYA9LAntgnlV4/7lnRQBKh UxXlS2QKhsQzMvJ3fM/PpfKr7S/tOqitb1+KjUc3EkMoJjAoUOXJ731X+50JlxHj8cDtX97rzHl b5zACoEgj/3X8jOfTucnTcuaR7F8r5tB5 X-Gm-Gg: ASbGnctLQwHlp6lG4wEjY9T39Uof+B5pTeKNlwjr9WnY7uUETdH47LtDxb849TjfX78 xktNWRul/V0/VQr1j21KAkQJG2ceziXSoteVw+TREmTge2xB7Bm65QnPcIIPJr20xb79dexmNkv uqR8z35XfJVFjs5P5Ha11OC8TXcGw= X-Google-Smtp-Source: AGHT+IG52Txj4Ie2HPHW/UUCrzLCz+Y4yZ0ipPV2SHo035T7rkR5t4lh9ZO0n1bd69Gw/IjbpwFTW/CcixT4GcTpdMo= X-Received: by 2002:a05:6402:26c3:b0:5e5:e032:e820 with SMTP id 4fb4d7f45d1cf-5e89f154919mr8908922a12.12.1742116078946; Sun, 16 Mar 2025 02:07:58 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Kang-Che Sung Date: Sun, 16 Mar 2025 17:07:48 +0800 X-Gm-Features: AQ5f1Jqrify_gq5-w0seIbfauVsR3Vle6mfT2ww2elbhZQO_MDT82G-hyudvN8U Message-ID: Subject: [PATCH 1/2] man/man3/wctomb.3: Rewording to MB_CUR_MAX requirement To: alx@kernel.org Cc: linux-man@vger.kernel.org, libc-alpha@sourceware.org X-Spam-Status: No, score=-8.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org The "must" wording on the MB_CUR_MAX length requirement could be too strict for what the standard allows to the "s" buffer length. If the programmer knows the wide character to convert beforehand, they can allocate the buffer whose size "just fits" for the sequence. Signed-off-by: Kang-Che Sung --- man/man3/wctomb.3 | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/man/man3/wctomb.3 b/man/man3/wctomb.3 index fce54cb4b..f6aefcd0d 100644 --- a/man/man3/wctomb.3 +++ b/man/man3/wctomb.3 @@ -42,10 +42,12 @@ that is, the number of bytes written at .IR s . .P -The programmer must ensure that there is -room for at least +At most .B MB_CUR_MAX -bytes at +bytes can be written at +.IR s . +The programmer must ensure that there is enough room to store the +multibyte sequence at .IR s . .P If @@ -68,6 +70,9 @@ function returns the number of bytes that have been written to the byte array at .IR s . +The value returned will never be greater than the value of the +.B MB_CUR_MAX +macro. If .I wc can not be From patchwork Sun Mar 16 09:08:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kang-Che Sung X-Patchwork-Id: 107950 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 35A5A3858D3C for ; Sun, 16 Mar 2025 09:10:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 35A5A3858D3C Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=cJWRqyPC X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com [IPv6:2a00:1450:4864:20::62b]) by sourceware.org (Postfix) with ESMTPS id 68B9E3858D38 for ; Sun, 16 Mar 2025 09:08:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 68B9E3858D38 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 68B9E3858D38 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::62b ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1742116132; cv=none; b=aH7y+yVhqM+YMF3C1mtKWiHySELZrsLLC8CUAiWNmG69DiuegbaPqk/Fcq6FBn5SkAEtU3EjwA7zzritvYHrdCn+MM39nATjeWcDtWTWeZaQ2zTLui9re3YkPgLxJX7FIlEJiwn7r+253/j0Fz6HBol3iJTTRmFXiqBTNA2wL90= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1742116132; c=relaxed/simple; bh=HsilT7Hm9JDjXM/FOgIfzUJPNN0lEuhiH50f9aewlIQ=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=k3vK33zAbOiympo7xXSWk6jobSRk5sQ9tpCXXElwnGGamTz3RigDK2KMPo0wnBRv0pgfzpUCvI6/zd11rxxovEoxHazkNyhBP7VY8MYoA38ILnAPCAvvkNanhTtxyb2zC9ZIpb0KPw1rg41TZdhH8pqAyxgKgzxaatgO1BLjsPA= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 68B9E3858D38 Received: by mail-ej1-x62b.google.com with SMTP id a640c23a62f3a-abec8b750ebso624636666b.0 for ; Sun, 16 Mar 2025 02:08:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742116131; x=1742720931; darn=sourceware.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=uvZL6T06ni565xp6hM9b+BgwBsxUBSCq4caPOLXOUzU=; b=cJWRqyPC87pvgrBjAfgcVCT4vrfVdCguc2wEI7ZVPWJLHwwOFK7D9yfhjEU8XGB8FD VkD2vgES6Nka6CqkBRRnwtFtwzdDNmpNeuyp+quhMLsLlPi8tmpfTR9xrgdTuQnAgOtL ob90BPgqIUCMJIbZJM40sJtuuGDKZHFtVPQuLnC9yKM8A2KKzCRZs4GRPXslGM9PsaWX 4u9ZvFej0efnSgp0MF/Yv8y8UeSnhWBsti0L5SF6uCswzt6j1rnda917kL3V0xbylfrA 8VjcUeGOUWk+fth1fHSF1xe1o4M/CjdrSoScH6vQlClWmrBGKE3xvScxnS6wKMcPGKD8 3c2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742116131; x=1742720931; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=uvZL6T06ni565xp6hM9b+BgwBsxUBSCq4caPOLXOUzU=; b=SbP/GTMCpxOxr+o4ud1WZZXLEebYwrM/UKLpc9saB5MinTa5R5c0uNkV2VVMDoVvu6 hzR1MgpyNc08J2IxutLijH3oBWLwyEHwnjifFzS4OcOzE3tKo5ieenDpFj413Na8HHQq GaZFs3LCBfXbkgHqLWPU1ULROyL1vW7/7CF4vTCe1aqveZVmL42Phe9PpwrR8lgSv4FS 23zt/jxhBGbhm//9tj3Er+MQzBkZWt3BCAm4ypUE69FcBuzwwRbmjVzjrH06oZQ/hIrX XZLcgqSbb5Nu0pP0Pwis2HJxoh4gnd5Wwy5wbRSXBy/vMsAbnpYEeaYt5maafsNBio+v afBA== X-Forwarded-Encrypted: i=1; AJvYcCW89um+x8zpyhtX90MWlYi6zyOJoBIpIYe/yrvsrklD5L5nQMPiQWfeyuH189wceS9fAKF6kNC85J1B@sourceware.org X-Gm-Message-State: AOJu0Yx/ouW93ZkkkgJF4KGkVAXszRulWkYdnKV5EY24f6T23oo2eF/y 5mnDCDE+rejx2ld/fYChFbx4dTiSgLNa0lkb7XZwERgEHnG1f5Ko5lFKqHtErdhVj1f2jgRqfQ0 6eLL+bF+pRF77THg67ldvsx5Oo3E= X-Gm-Gg: ASbGncuhynzjnnVjZq0RsB2jG7L4OwEXAcpN8mrdcklRifHdotYrLI6BNfeVk2UTt2f bznvlb3LVv7fbDMLudM+vvEmW14rJw9XwHdzdJiT2P81utt8koPdKv4bQNF3Qbuenv2hx8S75NB tVVakEEvZXASbZJQQKTG2fPkOJz7Y= X-Google-Smtp-Source: AGHT+IGowfcWRUi/f6of1jC76ReUT0O06Ouc+TSLm4JiyEt7fvPGV8maLmzD8Xbxi+tLibeggg85K2nHaEat9QUOGaI= X-Received: by 2002:a17:907:86a2:b0:ac3:4c24:8648 with SMTP id a640c23a62f3a-ac34c24d69fmr428167966b.55.1742116130818; Sun, 16 Mar 2025 02:08:50 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Kang-Che Sung Date: Sun, 16 Mar 2025 17:08:39 +0800 X-Gm-Features: AQ5f1Jo34Y6svthvwSHGxzvP10QY6AWBTq6wFW1DhkfTIOVwbxwi9-iP7RsVbh0 Message-ID: Subject: [PATCH 2/2] man/man3/wcrtomb.3: Document MB_CUR_MAX length requirement To: alx@kernel.org Cc: linux-man@vger.kernel.org, libc-alpha@sourceware.org X-Spam-Status: No, score=-8.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org The wcrtomb(3) function, like wctomb(3), has a length requirement about MB_CUR_MAX. So copy the wording about MB_CUR_MAX from wctomb(3) to wcrtomb(3). Signed-off-by: Kang-Che Sung --- man/man3/wcrtomb.3 | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/man/man3/wcrtomb.3 b/man/man3/wcrtomb.3 index 967a1a0f6..27b5bd9c1 100644 --- a/man/man3/wcrtomb.3 +++ b/man/man3/wcrtomb.3 @@ -94,6 +94,14 @@ is NULL, a static anonymous state known only to the .BR wcrtomb () function is used instead. +.P +At most +.B MB_CUR_MAX +bytes can be written at +.IR s . +The programmer must ensure that there is enough room to store the +multibyte sequence at +.IR s . .SH RETURN VALUE The .BR wcrtomb () @@ -101,6 +109,9 @@ function returns the number of bytes that have been or would have been written to the byte array at .IR s . +The value returned will never be greater than the value of the +.B MB_CUR_MAX +macro. If .I wc can not be