From patchwork Tue Sep 23 18:27:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Boeckel X-Patchwork-Id: 120758 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 9F2E53858C42 for ; Tue, 23 Sep 2025 18:28:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9F2E53858C42 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=kitware.com header.i=@kitware.com header.a=rsa-sha256 header.s=google header.b=dcntUQRt X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-qv1-xf32.google.com (mail-qv1-xf32.google.com [IPv6:2607:f8b0:4864:20::f32]) by sourceware.org (Postfix) with ESMTPS id 237263858C42 for ; Tue, 23 Sep 2025 18:27:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 237263858C42 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=kitware.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=kitware.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 237263858C42 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::f32 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1758652038; cv=none; b=t5mC200RNSXQKrMSKG1z2GlNJX3m8zSGtLv//H/O9ibAMTzXSlsWCQoQuXoy63vJqYE8E6o+QAyHalV9NdnfeJvS0kwQOMzW35nFi2Akd8Uqneg1S219kgsU/TFStuMJGFcFzT5ColRF2VgEOh37KwsZkEFnp/pa9gxg5/2CaRM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1758652038; c=relaxed/simple; bh=tW+Dp9lWVotvEU3mkcZE0jVbKp48B8giaX4PtNXVxZQ=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=BsCeE7TAPFMdyOy0LkSwd+jqzO0q1rNKNuKTVZUEky6ZERhkNCtWBL+R/rA8jDrCmyxHejwMCLoVkvKNLF5KAXTDSVkQyEWdiH/4pc0ijxJ8KLzY1/1YYYim9RNdCvuPzJJVDogz62G10kH2HLIZ7mjVvU5Nv3evA4IR7kdku04= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 237263858C42 Received: by mail-qv1-xf32.google.com with SMTP id 6a1803df08f44-79a7d439efbso43001786d6.0 for ; Tue, 23 Sep 2025 11:27:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kitware.com; s=google; t=1758652037; x=1759256837; darn=sourceware.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=DqHj9Z8O4rk9TdBL85efall1Khxn3oWpxNzejfO/5JM=; b=dcntUQRtti++I/nqWmjhw9G7Zc1K5DLtcsk6+QR6biW069Aba0NSfqHb26coIjvbax 8qQOO0qfvDe4qaThh/Q6deD7cJUISmeE07/B52APRMoqCt8I4SEah0J6Wx6dhDyo/x0w jX9+1uZnE0656zdwXjIT4tDeU5FFvPUu1c3jg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758652037; x=1759256837; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=DqHj9Z8O4rk9TdBL85efall1Khxn3oWpxNzejfO/5JM=; b=dvkhKr4S5aO2nyv2ZYNC/AS5QOT5AMAGfczGv0LUDOhdDvTXjAsr101Vye9AQCvbKk hyJB3404B4W6opl7O0WDp7dCmDBXckFFDknrMtGPz0ic67oBEVwFjmn2CrNEUye9ut50 V9UxPMkn6dqTuAKZj3bFDBHVWHqd9SpCdOGgJLcRipk0pYVIIoEx9gThfKPwtsnC80u3 nCLKzFAw2RXyp2g6ZwBPojv2SaOPHBQY3jpxH8xMyggULBnkANrd86z8DnCl+03UN8kr HeFRSMyMdJftY4e+lbD4vZIKdhaVFXDM3dbXs9FZ7V0+SUxAxjPR8grDGYMr6cAVet47 6gnA== X-Gm-Message-State: AOJu0YzrFBl8wPEJZZAHfingl435Nt8bRJNhjAsDKDzVAkQeUiv15lGy XJmroTg4lfMP6uexCzBnYMaEJ3kWpRzehaTV0nwIEFlHjYSb7Z8lwEApBSaruEflhG95p1anvLV AzEE= X-Gm-Gg: ASbGncv3qEEnAiTvshnf8awEhyYt1OnKyW2hspAW6P7ps0T+g9RxDJwQUFtMADlJHDd SUjtoqnhj6Kw1FiJHjN7IKdN1VF66mz/jt7FhcCV2IEM62YJ/nr/vs2S51FWk2wi6lSOQi1EYPU ioaJddAthgGdOic9CxF5AuLSDx898YfAdMt2aQjY2f9RpYsAuZ/W0YbSytSKTApklHsw9gTxXBH xC/Sw65xCAgCu9sAmjzyRKff8bdDXoIlExnCZDeFIudtaPOj0/wNRbVz4zBDiJcYND74LteHcoO cHWprv8S2crdQN6cH8rM4RNqMxmBg51XL8AxQtm8txG6nCEPcf0Z8fTpoKZuBAyRl4Y2F9cAa0w hcbax2Jd5Z2RDY6EoQCI= X-Google-Smtp-Source: AGHT+IEzximN6ppck1SaldsVMYMVTCy45UyBfWgbplB3EQDYzczxTkTSQn+iESonqBieOMjlK39Eyg== X-Received: by 2002:a05:6214:1bc7:b0:794:1944:31e2 with SMTP id 6a1803df08f44-7e7091212c7mr42543776d6.30.1758652037432; Tue, 23 Sep 2025 11:27:17 -0700 (PDT) Received: from localhost ([2601:985:481:1ca0::17f0]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-79344898f49sm93824726d6.12.2025.09.23.11.27.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Sep 2025 11:27:17 -0700 (PDT) From: Ben Boeckel To: libc-alpha@sourceware.org Cc: Ben Boeckel Subject: [PATCH 1/1] elf: Report when found libraries are rejected [BZ #33479] Date: Tue, 23 Sep 2025 14:27:12 -0400 Message-ID: <20250923182712.37307-1-ben.boeckel@kitware.com> X-Mailer: git-send-email 2.51.0 MIME-Version: 1.0 X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP 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.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org When debugging library loading issues with `LD_DEBUG`, it can be frustrating to see logs for files in a directory are searched, but the target library is skipped over without any indication of why. Add reporting to all paths which reject a library as `ENOENT`. Originally created for minimum-OS version detection, but that has since been removed in b46d250656 (Remove kernel version check, 2022-02-21). The remaining codepaths are still useful. Signed-off-by: Ben Boeckel --- elf/dl-load.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/elf/dl-load.c b/elf/dl-load.c index 891b44966c..1d0bcff650 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c @@ -1633,6 +1633,8 @@ open_verify (const char *name, int fd, 32-bit and 64-bit binaries can be run this might happen. */ *found_other_class = true; + if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS)) + _dl_debug_printf (" (incompatible ELF class)\n"); __close_nocancel (fd); __set_errno (ENOENT); return -1; @@ -1671,6 +1673,8 @@ open_verify (const char *name, int fd, } if (! __glibc_likely (elf_machine_matches_host (ehdr))) { + if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS)) + _dl_debug_printf (" (incompatible ELF machine)\n"); __close_nocancel (fd); __set_errno (ENOENT); return -1; @@ -1706,12 +1710,19 @@ open_verify (const char *name, int fd, (phdr, ehdr->e_phnum, fbp->buf, fbp->len, loader, fd))) { + if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS)) + _dl_debug_printf (" (incompatible ELF headers with the host)\n"); __close_nocancel (fd); __set_errno (ENOENT); return -1; } } + else + { + if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS)) + _dl_debug_printf (" (no such file)\n"); + } return fd; } @@ -1822,6 +1833,9 @@ open_path (const char *name, size_t namelen, int mode, /* The shared object cannot be tested for being SUID or this bit is not set. In this case we must not use this object. */ + if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS)) + _dl_debug_printf (" refusing to reload shared objects from trusted directories\n", + buf); __close_nocancel (fd); fd = -1; /* We simply ignore the file, signal this by setting