From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by sourceware.org (Postfix) with ESMTP id 364F1393A40B for ; Tue, 25 May 2021 17:50:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 364F1393A40B Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-229-1L7Z1i0iMkWmbyZy1ryZ5A-1; Tue, 25 May 2021 13:50:40 -0400 X-MC-Unique: 1L7Z1i0iMkWmbyZy1ryZ5A-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8B9481005D52; Tue, 25 May 2021 17:50:39 +0000 (UTC) Received: from oldenburg.str.redhat.com (ovpn-113-228.ams2.redhat.com [10.36.113.228]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B366A5D9C0; Tue, 25 May 2021 17:50:38 +0000 (UTC) From: Florian Weimer To: Fengkai Sun Cc: libc-help@sourceware.org Subject: Re: Can LD_PRELOAD set different symbol definitions for shared objects and executable? References: <87eedv19yw.fsf@oldenburg.str.redhat.com> Date: Tue, 25 May 2021 19:50:36 +0200 In-Reply-To: (Fengkai Sun's message of "Wed, 26 May 2021 00:03:34 +0800") Message-ID: <87im36vh1v.fsf@oldenburg.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Status: No, score=-5.9 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP, URIBL_BLACK autolearn=no 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-help@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-help mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 May 2021 17:50:46 -0000 * Fengkai Sun: > Hi Florian, > > Thanks for your help as always. > > I've done some research on LD_AUDIT interfaces, and found it very useful to me. However, I > had some problems when implementing a separate malloc for executable and shared > objects: > > I use la_symbind64 to monitor symbol binding. The pseudocode is as follows: > IF symname == "malloc" AND refcook == "shared objects" > RETURN custom_malloc > ELSE > RETURN malloc > > Then I discovered I have no way to get the address of custom malloc in > the audit library... Hmm, malloc may be very special here because ld.so and libc.so in the base namespace really must use the same malloc, or things will fall apart. In principle this code should work, and I expect with a lot of care, it can be made to work for malloc as well. Thanks, Florian