From patchwork Wed May 7 14:17:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Adhemerval Zanella X-Patchwork-Id: 888067 Delivered-To: patch@linaro.org Received: by 2002:a5d:4683:0:b0:38f:210b:807b with SMTP id u3csp407964wrq; Wed, 7 May 2025 07:25:13 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWJAjRLThFcbnaDI3ThD62AgzCIJH+3rSUu8EWtUtL+iGkCLe/wF5ZeNlguQlUYNWLWXgRdUg==@linaro.org X-Google-Smtp-Source: AGHT+IEFmYvqgQrIhehHqoa4UKMsF+/XKemliiQPOyLx/kJkkap9I3UlZRJqhdzIRnSBlnWsGv1J X-Received: by 2002:a05:620a:4555:b0:7c5:6ef2:275d with SMTP id af79cd13be357-7caf741d348mr454299085a.52.1746627913444; Wed, 07 May 2025 07:25:13 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1746627913; cv=pass; d=google.com; s=arc-20240605; b=ipY53C314ybrmhmvk0Mw7Ev7WJ6GX8iuE/8Kd6le2IlCO3Ouym4rtpRRF+XpVG2VQ7 sPqwXRaKYfUeluRLjHtLymZPMyeQFGboJyqHQ4iM+zloBDZPxUdPvk9c2cJ1JSf6Q+2D 6cm6puCwvP2z+Kc5yKCVtPHJK0xqVwqtCWI9r9QlU2XRkJddg4bdQAIauMC+mEcgyPo1 LYXXb0QzEjggfktxXd4KG8WcIc334awkKzHTCMNsI3oGG9XRX68RroxEM1kcT27v5hDj kuwuCeL+ubiLPUh2Mki25w7kLNroby7tslbUxvkpJwBz66pa6Lkns85ZLgs66VkmgsHc 2cKw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dkim-filter:arc-filter:dmarc-filter :delivered-to; bh=NyWaQXUUsBl8JDAAyC/5Sz5T0bV/DvSdrr0XZLudzbc=; fh=v2Nv3k9i7Amxu65q1mEuFELTOLzYYycJBMRhbhFxZhE=; b=YZji5zKEx62uYcyo1iH38JY/uNHdlDasE+ZJB48PuhYYG1fyextfiCr+fjYSfbTQ5z BchUaGidcp85wO1K8dGDBvcHd+t8gk4HXKEJdOLOBXyAlVxWIMkrs8MrnYOxXe2Z30kY s5FmI/FgA8czdRHHifKvBuoCMcc1TFbN2riCTjJqtcrNOhDBQwV8jCfHQl1C3mo8bhhC QqcZaExmKJgGAMAr+QswkHIoPUSfDAPIUNHZE1AnA33LwjAvaeICyN06jI9B4Si6kR0f WJ2S8uVp+JIMCfyawHDdWiYoUijj9l9sIQLcHx3p6buqtgeWGdnRS5joz3BXvLNv1Xuh Bw4Q==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=BVFUR+q5; arc=pass (i=1); spf=pass (google.com: domain of libc-alpha-bounces~patch=linaro.org@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="libc-alpha-bounces~patch=linaro.org@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from server2.sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id af79cd13be357-7caf75c9373si210976885a.529.2025.05.07.07.25.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 May 2025 07:25:13 -0700 (PDT) Received-SPF: pass (google.com: domain of libc-alpha-bounces~patch=linaro.org@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=BVFUR+q5; arc=pass (i=1); spf=pass (google.com: domain of libc-alpha-bounces~patch=linaro.org@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="libc-alpha-bounces~patch=linaro.org@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 1C57A3857350 for ; Wed, 7 May 2025 14:25:13 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-pg1-x531.google.com (mail-pg1-x531.google.com [IPv6:2607:f8b0:4864:20::531]) by sourceware.org (Postfix) with ESMTPS id 705B03858C2F for ; Wed, 7 May 2025 14:21:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 705B03858C2F Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 705B03858C2F Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::531 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1746627681; cv=none; b=dT0U5aLMo8UMHx4V6e8ClTgLReoXHoiIFrQcMSK3ldehRFO/asjtQFVO4V+fRi9eMu/R19UlyLM0jUxKRBCgAaUOv2W0AR5TZ2byaPYc90+xsvXRBNvhTfJX5xpGnMM4r/ouqq0qZw+uIbytiBn0PZC0IR1vxhXOGNi7w6uGmEE= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1746627681; c=relaxed/simple; bh=q6zzHaOYE1ZxHWetGgf1cmsqzjeuUEW6y0pIIBao1Mg=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=SyEeGevaAu/RFAsoqZuf33ndiqBkhWOqFCxRkrD9+VfFHpS4tlzO8Ey5EhZok9DayVS2MbxwNuE4ZL/0EnzOmqkVmqVVUGfqMqglATFUXM+1FyUSM7D6ltyf0Mps/q7qHJP8ovUOtJTGm7X7XaGNqT68tghYUdvtvcldk2yytUM= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 705B03858C2F Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=BVFUR+q5 Received: by mail-pg1-x531.google.com with SMTP id 41be03b00d2f7-af5139ad9a2so4766068a12.1 for ; Wed, 07 May 2025 07:21:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746627680; x=1747232480; darn=sourceware.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=NyWaQXUUsBl8JDAAyC/5Sz5T0bV/DvSdrr0XZLudzbc=; b=BVFUR+q5FfsfBtyhMoOmfAiHUvnLniKjPd3P3QzRpURvaqAjAJPRZoW6kbPmfcoVIz EJWUOA8ivUP9IIGG28XwHrWFG8djXLjLXR+GpaF0AdISi6vGfCeDXRo+tIiaaWzXAoWr jUc4cYB1Y1QdiglNsizL85IZwSv50RmhnXYozMKk3PcJ8l3ZWmPXPFqO/26xK1thYMJ5 3FHqfSDpRML62qa4d74q49YR125KFY8C2a3fuMe6lCF3u4dXbXvGXJpRqwDwSHRxrbXm Xe35cOdsq+b6mg/WhbCxiCFKJmkQ2YOEVYy2FOst0PVKd12pe9x8PUPCf0CHxImXe/ps 3J9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746627680; x=1747232480; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NyWaQXUUsBl8JDAAyC/5Sz5T0bV/DvSdrr0XZLudzbc=; b=Mi6lqx0aacPjTWARhj/rTr31yrCyh8XlMMfrjc6A9sDlH8rpK9l6+kUtPu4qFoJSGt e/U8mt3KRGYCh6V3P9MDfIL2JuIcG52ZfGI1DydLMp3jQJ2znlOsaXNyRy3jcKzhoGKN rWroS02csZrOvs8tHKV6Lpr0/dWqeWQT1WlLqZSpW+rAnVWUvXLN2WueML94msprhISe ommxgsE7/R5JZuEiBFkgimbDQGK34FODrDc8T5zlZ+leoacS04r5TQdFQ8jGnRsSObmj jXTveqjE+3+44PRVLaA0n2Yj/vTCc8eSHQnYGhTR+aAYqzZjpYhmggPsEg9AY7sJwlC1 xzug== X-Gm-Message-State: AOJu0YzROfpERcgTpRVroO7YroD+mEGrdxHeOq+fH/ShDmkU6GWv2Hvv XwEc07x0dPlpOQTKTg/+7fmm8rk5ysNwuTaWDeZMjUjIK4y7xiuqe//49Er/H9V4DZwOi5cr8Nl Wlzw= X-Gm-Gg: ASbGncuFlZtdJkRdl1/L8Bc3JsHG5N32ZLqjczSeeN6o3Jx8LeK4OfN5iCTGPGfTCJd 9c1xx3WA53ZW5QDRwyuWdQco1h/tJonPJmazO2oVsWxa4VgaSTv224e+8hddSRvqDsc8HPlwXWW H6+r3QqecVC/Bj9B0fwefcxyE03VEmrcxlQ8/voX8eXhZLSpbxlEJ8swbfUvBhBVffjx4sILdhS 7HN57AB4En45s1Dyok0G3lX7rWriduBD99VDkUdJHADPfBzvStvv+KVDJ8km6UpjKsX0Gk4J9Aa +sPf2Ev+jYl7JiOsE63+VkTkFM1+N8sFbA96thmftkAbiK5HOyJiPAHY1bHZhy2K X-Received: by 2002:a17:90b:1e08:b0:2fe:a0ac:5fcc with SMTP id 98e67ed59e1d1-30aac28d6aemr4456008a91.34.1746627679896; Wed, 07 May 2025 07:21:19 -0700 (PDT) Received: from mandiga.. ([2804:1b3:a7c0:2a60:2bef:3994:10d0:59c9]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-30ad474a050sm179453a91.8.2025.05.07.07.21.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 May 2025 07:21:19 -0700 (PDT) From: Adhemerval Zanella To: libc-alpha@sourceware.org Cc: Carlos O'Donell Subject: [PATCH 03/11] locale: Fix --enable-ubsan build failure on some ABIs Date: Wed, 7 May 2025 11:17:21 -0300 Message-ID: <20250507142110.3452012-4-adhemerval.zanella@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250507142110.3452012-1-adhemerval.zanella@linaro.org> References: <20250507142110.3452012-1-adhemerval.zanella@linaro.org> MIME-Version: 1.0 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~patch=linaro.org@sourceware.org On mips, arc, powerpc, and s390 gcc 14 triggers the warning In function ‘charmap_new_char’, inlined from ‘parse_charmap.isra’ at ../locale/programs/charmap.c:570:6: ../locale/programs/charmap.c:1017:32: error: ‘strncmp’ specified bound [2147483649, 4294967295] exceeds maximum object size 2147483647 [-Werror=stringop-overread] 1017 | if (cp == &from[len1 - 1] || strncmp (from, to, prefix_len) != 0) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../locale/programs/charmap.c:1017:32: error: ‘strncmp’ specified bound [2147483649, 4294967295] exceeds maximum object size 2147483647 [-Werror=stringop-overread] cc1: all warnings being treated as errors So move the case to an special function and disable the sanitizer. --- locale/programs/charmap.c | 2 +- locale/programs/charmap.h | 7 +++++++ locale/programs/repertoire.c | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/locale/programs/charmap.c b/locale/programs/charmap.c index 7768a7a7fc..58433c8c5b 100644 --- a/locale/programs/charmap.c +++ b/locale/programs/charmap.c @@ -1014,7 +1014,7 @@ hexadecimal range format should use only capital characters")); prefix_len = (cp - from) + 1; - if (cp == &from[len1 - 1] || strncmp (from, to, prefix_len) != 0) + if (check_illegal_range (cp, from, len1, to, prefix_len)) goto illegal_range; errno = 0; diff --git a/locale/programs/charmap.h b/locale/programs/charmap.h index dcdbfe1828..b4aa8d6b6c 100644 --- a/locale/programs/charmap.h +++ b/locale/programs/charmap.h @@ -62,6 +62,13 @@ struct charseq unsigned char bytes[]; }; +static inline bool +__attribute_disable_ubsan__ +check_illegal_range (const char *cp, const char *from, size_t len1, + const char *to, size_t prefix_len) +{ + return cp == &from[len1 - 1] || strncmp (from, to, prefix_len) != 0; +} /* True if the encoding is not ASCII compatible. */ extern bool enc_not_ascii_compatible; diff --git a/locale/programs/repertoire.c b/locale/programs/repertoire.c index 7ed8c915dd..99f560fc45 100644 --- a/locale/programs/repertoire.c +++ b/locale/programs/repertoire.c @@ -433,7 +433,7 @@ hexadecimal range format should use only capital characters")); prefix_len = (cp - from) + 1; - if (cp == &from[len1 - 1] || strncmp (from, to, prefix_len) != 0) + if (check_illegal_range (cp, from, len1, to, prefix_len)) goto invalid_range; errno = 0;