From patchwork Wed Jun 22 23:34:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Noah Goldstein X-Patchwork-Id: 55313 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 E30B6382FE73 for ; Wed, 22 Jun 2022 23:35:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E30B6382FE73 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1655940910; bh=KWHYbdQAt74ewFvfI1ez56gj/Bq9R5pqtaqBqNG1/lo=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=pzA+U+gXPoV9psevLAvpFLNyJxGCZp5Llq4qB1ohX+jDIHU+bcNCSIGUlo36Jn1VG /fouLwscsS9yg0gc0iAE3n7VLMXBxkzGjUy1yMOJByUvLJX6tjvqvnBn0hlJAzj/lC ZkWwOR64jvYGwqd7y8oAtaE5W+txcQsH07WgP0y0= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-pf1-x42b.google.com (mail-pf1-x42b.google.com [IPv6:2607:f8b0:4864:20::42b]) by sourceware.org (Postfix) with ESMTPS id 321EE3857B97 for ; Wed, 22 Jun 2022 23:34:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 321EE3857B97 Received: by mail-pf1-x42b.google.com with SMTP id d17so8493406pfq.9 for ; Wed, 22 Jun 2022 16:34:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=KWHYbdQAt74ewFvfI1ez56gj/Bq9R5pqtaqBqNG1/lo=; b=ZLFrPr5z/Z1FKdeP6RF2upj9EMf0XBLTfE9bETvk58isvnz2wac0WHLASx/LDr9Bhk al+WvfoLPagTK0v0i2bB99TYmBAZx5L5goQbZp+njUVkCa9ZSOnt99oXCkfmx+NOll24 Nb/eK/trmxh2X2x4uNgIG8NPCPBp7TLEjGOd5ud9sf7adjE4HIUE0AABiqY5aIRx19WF 6VcuC7lyKaVo7yzD+VUXrk2oaEJcNOC5i4hbhf37TSg6CZPCHgBGDRinUZCJ3yfTGbkh JidIuE0BxqhWOQi8fHFv4z1RXbD1RyWsh0+nm5xyoW5dECjxCGQ2TTRqIkpFoXFbX2kZ 9iAA== X-Gm-Message-State: AJIora9cS9aTPOSDW5fmdpn8a96i47s9u1fUt8SeFwuF5UKUwOiCiy7C hwzK5gI3kPHxMBKjb4fboonmy3aYIhA= X-Google-Smtp-Source: AGRyM1tWBA+VSaDF7qDM14/0Xs4HrJ2klpFMKcdSwRpuoIHEx50RUOZgocV7skils+kI5EtqZMx/0A== X-Received: by 2002:a63:2164:0:b0:3fd:b97e:2e4b with SMTP id s36-20020a632164000000b003fdb97e2e4bmr5022648pgm.77.1655940887113; Wed, 22 Jun 2022 16:34:47 -0700 (PDT) Received: from noah-tgl.. ([2600:1010:b051:c9b1:28ad:233d:7d27:487a]) by smtp.gmail.com with ESMTPSA id a14-20020aa78e8e000000b00525496442ccsm2064340pfr.216.2022.06.22.16.34.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Jun 2022 16:34:46 -0700 (PDT) To: libc-alpha@sourceware.org Subject: [PATCH v1] stdlib: Fixup mbstowcs NULL __dst handling. Date: Wed, 22 Jun 2022 16:34:42 -0700 Message-Id: <20220622233442.2777550-1-goldstein.w.n@gmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Spam-Status: No, score=-12.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Noah Goldstein via Libc-alpha From: Noah Goldstein Reply-To: Noah Goldstein Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" commit 464d189b9622932a75302290625de84931656ec0 (origin/master, origin/HEAD) Author: Noah Goldstein Date: Wed Jun 22 08:24:21 2022 -0700 stdlib: Remove attr_write from mbstows if dst is NULL [BZ: 29265] Incorrectly called `__mbstowcs_chk` in the NULL __dst case which is incorrect as in the NULL __dst case we are explicitly skipping the objsize checks. As well, remove the `__always_inline` attribute which exists in `__fortify_function`. Reviewed-by: Siddhesh Poyarekar --- stdlib/bits/stdlib.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/stdlib/bits/stdlib.h b/stdlib/bits/stdlib.h index d9c2d822a5..de1c3b20f0 100644 --- a/stdlib/bits/stdlib.h +++ b/stdlib/bits/stdlib.h @@ -96,10 +96,10 @@ extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len, size_t __dstlen) __THROW __attr_access ((__write_only__, 1, 3)) __attr_access ((__read_only__, 2)); -extern size_t __REDIRECT_NTH (__mbstowcs_chk_nulldst, +extern size_t __REDIRECT_NTH (__mbstowcs_nulldst, (wchar_t *__restrict __dst, const char *__restrict __src, - size_t __len), mbstowcs_chk) + size_t __len), mbstowcs) __attr_access ((__read_only__, 2)); extern size_t __REDIRECT_NTH (__mbstowcs_alias, (wchar_t *__restrict __dst, @@ -113,12 +113,12 @@ extern size_t __REDIRECT_NTH (__mbstowcs_chk_warn, __warnattr ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"); -__always_inline __fortify_function size_t +__fortify_function size_t __NTH (mbstowcs (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len)) { if (__builtin_constant_p (__dst == NULL) && __dst == NULL) - return __mbstowcs_chk_nulldst (__dst, __src, __len); + return __mbstowcs_nulldst (__dst, __src, __len); else return __glibc_fortify_n (mbstowcs, __len, sizeof (wchar_t), __glibc_objsize (__dst), __dst, __src, __len);