From patchwork Thu Mar 2 19:40:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: stsp X-Patchwork-Id: 65930 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 EC6B73851C20 for ; Thu, 2 Mar 2023 19:42:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EC6B73851C20 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1677786127; bh=IAIvF7LRLeVNf+L6u2IjhpAkpDXaSwfMVRS0UK186Tg=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=sW/iWjF6daiowuG0D8FJb9HJpxGyqJJpeY4Rpmfb8W9gWLq9Jt8p5Ve/qW2HleKIo TEnCA1zHSs1BY/efy6u8zTYyS1emiuWoVoqhvcQoTNd3SXRRYGJJvLakdfZUdQGROc Uxmwsggw2Ka3SDLMZXI1aJFYRQfhbPJtU4Fw5Y2E= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from forward204b.mail.yandex.net (forward204b.mail.yandex.net [IPv6:2a02:6b8:c02:900:1:45:d181:d204]) by sourceware.org (Postfix) with ESMTPS id 2552D3858C83 for ; Thu, 2 Mar 2023 19:41:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2552D3858C83 Received: from iva4-143b1447cf50.qloud-c.yandex.net (iva4-143b1447cf50.qloud-c.yandex.net [IPv6:2a02:6b8:c0c:7511:0:640:143b:1447]) by forward204b.mail.yandex.net (Yandex) with ESMTP id 76140600B9 for ; Thu, 2 Mar 2023 22:40:57 +0300 (MSK) Received: by iva4-143b1447cf50.qloud-c.yandex.net (smtp/Yandex) with ESMTPSA id secDfN2bcmI1-LpKVwDxr; Thu, 02 Mar 2023 22:40:56 +0300 X-Yandex-Fwd: 1 To: libc-alpha@sourceware.org Cc: Stas Sergeev Subject: [PATCH 2/3] dl-audit: avoid closing fake ld.so [BZ #30127] Date: Fri, 3 Mar 2023 00:40:50 +0500 Message-Id: <20230302194051.3677691-3-stsp2@yandex.ru> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20230302194051.3677691-1-stsp2@yandex.ru> References: <20230302194051.3677691-1-stsp2@yandex.ru> MIME-Version: 1.0 X-Spam-Status: No, score=-10.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, 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.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Stas Sergeev via Libc-alpha From: stsp Reply-To: Stas Sergeev Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" When new namespace is created, the fake ld.so object is created that refers to main one via l_real pointer. Such object is not passed to la_objopen() but is passed to la_objclose(), resulting in an unrecognized cookie. This patch avoids passing such objects to la_objclose(). The test-case for this is presented in a next patch. Signed-off-by: Stas Sergeev --- elf/dl-audit.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/elf/dl-audit.c b/elf/dl-audit.c index 00e794aa26..ebfca887aa 100644 --- a/elf/dl-audit.c +++ b/elf/dl-audit.c @@ -96,7 +96,9 @@ void _dl_audit_objclose (struct link_map *l) { if (__glibc_likely (GLRO(dl_naudit) == 0) - || GL(dl_ns)[l->l_ns]._ns_loaded->l_auditing) + || GL(dl_ns)[l->l_ns]._ns_loaded->l_auditing + /* In non-base NS skip closing "fake" ld.so as it was not opened. */ + || l->l_real != l) return; struct audit_ifaces *afct = GLRO(dl_audit);