From patchwork Tue Mar 11 17:09:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adhemerval Zanella X-Patchwork-Id: 872463 Delivered-To: patch@linaro.org Received: by 2002:a5d:64ce:0:b0:38f:210b:807b with SMTP id f14csp1594270wri; Tue, 11 Mar 2025 10:14:38 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCUpLyh1sqd+MWqcm8CCCI8JpVW6TimowY68kA0a+kdhSmHiywSsa8ecgOaRp9R7w60hdcRuAw==@linaro.org X-Google-Smtp-Source: AGHT+IFj57/1KuDZHTuUSTTkCS4NSSwFqkNbrReryg+66W+01SXhBjDaimSBd9ZiXbbrvByoW/UJ X-Received: by 2002:ad4:5aac:0:b0:6d8:80e8:d567 with SMTP id 6a1803df08f44-6e9005f732emr289317076d6.18.1741713278500; Tue, 11 Mar 2025 10:14:38 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1741713278; cv=pass; d=google.com; s=arc-20240605; b=FQAB32kaOJJdSGuqtYp+MpwVRqWLoCph6kpP+WetHKh16uTCeIuoCCec37BlUWcydU uIUwtAZuQHXSFXsG+61C19WofFaaorcriFipmCz/6sLtYmKisZOP9FBZa6rLEaw/NgIe nYPc21Eae3/b3Ymkk/s2sPbBWlI/INlrDm5I4K6GZ3LSk74UJMPS5s5lDKRSAFLM6zq4 HoArbDXqiiycPMZiPQfn8oAg99VzE/+6BGhJQCyrfDQZtpXh8qVZ3erY8MjTCHa3OYhM KzLG/vKzUdvfL2HNAajflF8NR7Finn8CO1I++Do4gAtHckb/ifZzr2uOlKiq+Tg7wToA KMxg== 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:dkim-filter; bh=ybyPxwCuz5krpqkgUSdkTFiLFdsZ91hk+hsk1bkBMJM=; fh=KcDe9xnl32Q8s5hC3CF4r26ysVeQspjxpbjrMk+PnIQ=; b=JCVjHqD/40ilw9uBpqiL0FEVOHAC0pknNWAFRdGnmrHpiJWIrc9MREggdcnEBSEp0f lSkWH50a2N6CzXGzGHa5JPiF+VKzAGxLEn0Sv1BBGkqIWa8HuJ+9AxdLzX7r893oRgQN TbBmcUvf/4MQt6b7iMNxaRQTG2Dr1/X/ny6QCbeqsNHH0iUGZ6vvPswRQzAnS/WLn9T3 q62cjKU62zXqJZtfaLKSoxDWBNpKCE31C2nJQeb7VY0HozTgI56QdLDiBOqtzg2rP9kR 9E5ASijWnZmCSKJ7jvrriEVWShZlCZBoOl4TWR0SNDWpDSB9vVgAppyVvTkPgwuXGhTb j4Ug==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=TYKTUVIN; 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 6a1803df08f44-6e90dc4f5a4si68573996d6.48.2025.03.11.10.14.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Mar 2025 10:14:38 -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=TYKTUVIN; 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 102F73857C78 for ; Tue, 11 Mar 2025 17:14:38 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 102F73857C78 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=TYKTUVIN X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-pj1-x1030.google.com (mail-pj1-x1030.google.com [IPv6:2607:f8b0:4864:20::1030]) by sourceware.org (Postfix) with ESMTPS id 61C4F3857836 for ; Tue, 11 Mar 2025 17:13:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 61C4F3857836 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 61C4F3857836 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::1030 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1741713199; cv=none; b=jHMmhjzrI0Lb2PC6xquUFDyZ+DB/XBg1YZpo8rAZwhmGymws1TsKm6/FMiO+cH870iEdtyXIijgUauvE74X5K94NInU8pg+WF+rZ9YR4y6/3IAbKlytypWj1QOncVmnqKuklQ7WL/p48oX0R99buAsUmZ5c+NoRwJB8D6iS+cpw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1741713199; c=relaxed/simple; bh=f/sItMdvG1ZTZQ+4mASeHkHlibVui1E0+RK9MXmp0Og=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=YoYbMNSOTDlIhWKLD9WgZZ0HYQJjEJVgKg0X5tI3fGSOXDRUBQPNoFv1qryrZ3LqdmZB4dkItXKlOwJin0Mp1iylI9pWTwutbEQvgYk+a1Iq5BAvh/q6Wr9hNQHa7GmBQ7gbN/twhl4907vTTMrV2kewelcVCzJ/9YH3NEckaLU= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 61C4F3857836 Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-2ff80290e44so9491724a91.0 for ; Tue, 11 Mar 2025 10:13:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741713198; x=1742317998; 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=ybyPxwCuz5krpqkgUSdkTFiLFdsZ91hk+hsk1bkBMJM=; b=TYKTUVING+lK8onNfEN8Aws3CQP/p9lyPQmlyHNBR6yMJybOWR/XOPNwryWCR8gbYc bFF+OOT3AdXB2vyLCD427xh0fN0pbF0sSCWZe3axHprMH6gKK94R9cy+pa9Oh74LkFuQ j7usnn06k0+voUGyFPtTA7ImQH+owKYqxErcwsolDTRCC1Jxhs7IebsfNIsqWflXqfOP /VQuJzH49/xnViK+wOGyDgDmxBjPGuzXpC61tZsB7RVOb8v5/bfqe0mgf9IY+aG1Baxk /B6HnL1OT9uyp258t62+j0gU119u98y+KfIZo9dTzfzuu9wIeD+zKcOxi6+jz3ow3Dkf SeNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741713198; x=1742317998; 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=ybyPxwCuz5krpqkgUSdkTFiLFdsZ91hk+hsk1bkBMJM=; b=oXF42bGjYGMHiHX8v50J9UUWvOy3COGvAqQ+SWEll5vpS+rn4T9xRqzzvBTXBc+45z GtwoOaT2+l8psbM6M0juURA+6w8uTpNm3O760rsCBlwlMWoykTF+XaoKAxLJWMvGyZct VQZvDPr3YZjvglm+hF9YP1hNF8Ro8BMzlj5X8gZe6vq0Utv3JOW59rjNyXsY2rTMiCq4 jj/mKUOOvoUhU+drGZ8iS1GT4KaYslCTx63RsnpX26ZYQj/E4tNC7eDYHCHUEZt1pC+H 4/3cup67viD5HpAtSfIaOb4JUXICTaBiSN/yRwOx5J4Opwo3IYOWGiYN1URKYfMABhQP PxWw== X-Gm-Message-State: AOJu0YxoyKZJb+RtD5Jzq0xPD8dYbPw00ir40++iIOSgIT17zHnlafzs 5pObBxftmd3HMBhd6IWMNYieGHUA2BdpXh22GFwItVfpX1tMygdEWTmpYs2MIf51v4I3gPP4wG3 K X-Gm-Gg: ASbGncuPzsnpneZelyr109Ca02aJXR1vFeYWHoV0kBLl16pDMsMBeMPuxTw+FnhLrPU yHxsfHVC+EICybZ2w1QFML3A1bGopK4sux3eaI5Jt4lxAOCVRC3yiq4xRhMWvify8ns29BfeCfr Q0aJPLZCJAKqG5peNeUDMkm+E/UwH7Fe3ied7GUhdIC1WU98ujZDo1bE/ONOO9OveuqyAtgGfQL OuCG/XJwubByAmg3XC7lGtkYJO1A6XDB0ss1FMQVJzMq3cMdZr7CDB0Zh68SrpW37ctpitXiu5J SwtdOKAiZDNmicRYHU55YCD2BkO7fHQr/lrngqXkZGB6XBxdQdb0sj4= X-Received: by 2002:a17:90b:5110:b0:2ee:5bc9:75c3 with SMTP id 98e67ed59e1d1-2ff7ce7b375mr26059972a91.5.1741713198176; Tue, 11 Mar 2025 10:13:18 -0700 (PDT) Received: from mandiga.. ([2804:1b3:a7c1:1ebf:8b5:8f5b:dd39:866]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2ff693f8804sm11438131a91.47.2025.03.11.10.13.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Mar 2025 10:13:17 -0700 (PDT) From: Adhemerval Zanella To: libc-alpha@sourceware.org Cc: Jeff Xu , Florian Weimer , "H . J . Lu" , Yury Khrustalev Subject: [PATCH v6 3/9] elf: Parse gnu properties for the loader Date: Tue, 11 Mar 2025 14:09:50 -0300 Message-ID: <20250311171305.89091-4-adhemerval.zanella@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250311171305.89091-1-adhemerval.zanella@linaro.org> References: <20250311171305.89091-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 So it can opt-in for memory sealing. Checked on x86_64-linux-gnu. --- elf/rtld.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/elf/rtld.c b/elf/rtld.c index 00b25c1a73..727e16f233 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -1724,11 +1724,15 @@ dl_main (const ElfW(Phdr) *phdr, /* PT_GNU_RELRO is usually the last phdr. */ size_t cnt = rtld_ehdr->e_phnum; while (cnt-- > 0) - if (rtld_phdr[cnt].p_type == PT_GNU_RELRO) + switch (rtld_phdr[cnt].p_type) { + case PT_GNU_RELRO: _dl_rtld_map.l_relro_addr = rtld_phdr[cnt].p_vaddr; _dl_rtld_map.l_relro_size = rtld_phdr[cnt].p_memsz; break; + case PT_GNU_PROPERTY: + _dl_process_pt_gnu_property (&_dl_rtld_map, -1, &rtld_phdr[cnt]); + break; } /* Add the dynamic linker to the TLS list if it also uses TLS. */