From patchwork Thu Apr 1 19:37:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Lirong Yuan X-Patchwork-Id: 42831 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 E6AB3385781C; Thu, 1 Apr 2021 19:37:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E6AB3385781C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1617305850; bh=tYR50b+th4tdYMbpedMadIsmY2pBG7WE78lEcQOPZ24=; h=Date:Subject:To:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=iw2dmjMYX3WYdt+jWr9H4LvCsbISv1m9bJxrVPuZ6e5j6gMdEDiBzReRmum9/cukg PxBSedC+liLCd0prLMc55FIJrt5oKCKEYjRLtcETZG45qsPdmD9e4ZN6c0sLYvVFDh S1hAEg7L1tbEVWtlO32FeiTwLJMdJzhPY1OMLpx0= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by sourceware.org (Postfix) with ESMTPS id 9D1033857812 for ; Thu, 1 Apr 2021 19:37:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 9D1033857812 Received: by mail-yb1-xb49.google.com with SMTP id 125so3803077ybd.17 for ; Thu, 01 Apr 2021 12:37:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc :content-transfer-encoding; bh=tYR50b+th4tdYMbpedMadIsmY2pBG7WE78lEcQOPZ24=; b=a817xYKk4pnkHWUEHrM98DknWU4nlw1y4uTVdushW9Coxay9dZC2/HFD7bY+TkJg3m vcmM5lSeE0UvplrFhg9X0JucgmNX6bEnMnNDTUDaQzZrZQu9vbEpNj5Y4V+G4HLihBzg 0ZStO+wORNlHQXEAXxKwrubpENShrmznTUp/HcpMWU57+TZ1w5JIJCDnw6KVIabWbuvw kw3w2dj7idnxVl3B/dfhGohUlCiTKQ7QyPQ/2c6f/tNMoO9qOm84va7E4InK2QSCcUe8 51kioMy5dg3yeQ3sktQHy0UDbtM3JuhFyFRDMBkQ0v8c8OBoVo76Y03LDBhKu0p8irXN Me1Q== X-Gm-Message-State: AOAM531XjoDc/EDdOOoPoz4jAJvFMoXxbehljqWUixy/ppMDojvsiTne eyJiwSIwRpxvuje9R7MKazsfIOP2/gCMum6KCVm/9DFW0WBNCTuqSj2sxdwRTrjs0cxoGfoEJyW mmTvond2BMrbaUsZA0VaVfljEUm1Xultp6A9q4D8H6MeKZuagVCnZgKd+WNH+uJ58rw== X-Google-Smtp-Source: ABdhPJwSSnPdD+LmyqKYnR0gEzlDDw/UeGEanNS/N4YXDV9XEcuslBMzU+/+h/1m6nmk7zAtJ6q16E/d7xY= X-Received: from yuanzi.svl.corp.google.com ([2620:15c:2ce:200:a885:35fb:37f5:e1f5]) (user=yuanzi job=sendgmr) by 2002:a05:6902:6d2:: with SMTP id m18mr14312696ybt.295.1617305847094; Thu, 01 Apr 2021 12:37:27 -0700 (PDT) Date: Thu, 1 Apr 2021 12:37:23 -0700 Message-Id: <20210401193723.1224640-1-yuanzi@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.31.0.208.g409f899ff0-goog Subject: [PATCH v3] locale: align _nl_C_LC_CTYPE_class and _nl_C_LC_CTYPE_class32 arrays to uint16_t and uint32_t respectively To: libc-alpha@sourceware.org X-Spam-Status: No, score=-19.7 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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: Lirong Yuan via Libc-alpha From: Lirong Yuan Reply-To: Lirong Yuan Cc: Lirong Yuan , schwab@linux-m68k.org, scw@google.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" steps to reproduce the problem: compile a program that uses ctype functions such as “isspace” for aarch64 with UBSan flag “-fsanitize=undefined” and run it on x86_64 machines with qemu user mode emulation. observed behavior: UndefinedBehaviorSanitizer reports misaligned-pointer-use in the program. solution: align the arrays defined in locale/C-ctype.c with correct data types as defined in ctype/ctype.h. test suite regressions: none. --- locale/C-ctype.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/locale/C-ctype.c b/locale/C-ctype.c index bffdbedad0..da2c8cc33c 100644 --- a/locale/C-ctype.c +++ b/locale/C-ctype.c @@ -18,6 +18,7 @@ #include "localeinfo.h" #include +#include #include #include "C-translit.h" @@ -30,7 +31,7 @@ In the `_nl_C_LC_CTYPE_class' array the value for EOF (== -1) is set to always return 0 and the conversion arrays return EOF. */ -const char _nl_C_LC_CTYPE_class[768] attribute_hidden = +alignas(uint16_t) const char _nl_C_LC_CTYPE_class[768] attribute_hidden = /* 0x80 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" /* 0x86 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" /* 0x8c */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" @@ -96,7 +97,7 @@ const char _nl_C_LC_CTYPE_class[768] attribute_hidden = /* 0xf4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" /* 0xfa */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" ; -const char _nl_C_LC_CTYPE_class32[1024] attribute_hidden = +alignas(uint32_t) const char _nl_C_LC_CTYPE_class32[1024] attribute_hidden = /* 0x00 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" /* 0x03 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" /* 0x06 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"