From patchwork Mon Mar 15 18:42:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Lirong Yuan X-Patchwork-Id: 42562 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 0C2B93858C27; Mon, 15 Mar 2021 18:42:20 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0C2B93858C27 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1615833740; bh=G6zJqBoiLJbQAM9mVEbw7fiwoFk8jaWM+WVAHDm2xiU=; h=Date:Subject:To:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=xIIp3zEjmrPhrsGC8/IfEJQw8OkqRQc0C7r4lo1E5d3Hx9xsQCHgYalQswgKDmQRU GzrFqE5/9KyNoYcgBgAyByhbciUX1RBlSi5Xbs4rFRSOH6pSHcsEPEp/7zbZI6r3hc 2J+P+a9f6LkhBErwCVI3bzekKN1sx55kqNUp67tU= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-qk1-x74a.google.com (mail-qk1-x74a.google.com [IPv6:2607:f8b0:4864:20::74a]) by sourceware.org (Postfix) with ESMTPS id 1B9193858D29 for ; Mon, 15 Mar 2021 18:42:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 1B9193858D29 Received: by mail-qk1-x74a.google.com with SMTP id g18so25159087qki.15 for ; Mon, 15 Mar 2021 11:42:16 -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=G6zJqBoiLJbQAM9mVEbw7fiwoFk8jaWM+WVAHDm2xiU=; b=AV1+8tdtnIcOUWMApRU8mQAfaYf/1KpLtGoBdbwyTGS60FmktIT6t4/9y5aMzM80/Q PE6ebp0WLGBQI4LXPkids4U94O7U1S/pGLuT4aTSizow8a5UyFyD4eGf2rIKuzbNNihr lH3rUB9rcdu8OZDYpGMCfCmNzFH9tLsWSOqHsdGfILf9bN5jUZgtLO45DlNu26Ie01aA 7ISfrYlXxjAcDo5Il02K7OC+t8PonzoCWbxyEqN/nw8C2JEDqrAonPLYU/NEGEUhN6JR g/dfJzPwLLx6xawgCLhWgv7j/8ouUTOdn1vvYJmpkuzIG3F+E9MmjqscusBWOR1l59xa GmLQ== X-Gm-Message-State: AOAM533kgKTrdFtLF3xucxC03JPbkwL7WrOgrcjE90wvPFw36glUhLWe wwITj0dRvkqqAoxXm8mnHFzK0I/eauMoLUI3a0fvaI30ZEs0nI5qWi01sKx2kFjLt7x2SsBbbZt vQE5wzAq3Y4V5hwwYdS+Xq9XxEwBApivz9dWTPiCfz6UEr+iMYJNanwhuhSemwtm1gA== X-Google-Smtp-Source: ABdhPJzVwR0uXSruWHX0ARV49R99L99CS2ixSc/+vT1rclgXNJr8NNjL0ZkeGh8CBWmT5Rpz4tDDfKjkNO8= X-Received: from yuanzi.svl.corp.google.com ([2620:15c:2ce:200:6858:7514:943:c39d]) (user=yuanzi job=sendgmr) by 2002:ad4:5614:: with SMTP id ca20mr12164128qvb.37.1615833735038; Mon, 15 Mar 2021 11:42:15 -0700 (PDT) Date: Mon, 15 Mar 2021 11:42:11 -0700 Message-Id: <20210315184211.4124573-1-yuanzi@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.31.0.rc2.261.g7f71774620-goog Subject: [PATCH] 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=-21.8 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 , 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. Signed-off-by: Lirong Yuan --- 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"