From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/14087 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Rodger Combs Newsgroups: gmane.linux.lib.musl.general Subject: [PATCH 1/3] ldso: when run via CLI, set auxv as if the app was loaded by the kernel Date: Fri, 26 Apr 2019 20:13:27 -0500 Message-ID: <1556327609-27385-1-git-send-email-rodger.combs@gmail.com> Reply-To: musl@lists.openwall.com Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="105999"; mail-complaints-to="usenet@blaine.gmane.org" To: musl@lists.openwall.com Original-X-From: musl-return-14103-gllmg-musl=m.gmane.org@lists.openwall.com Sat Apr 27 03:13:51 2019 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by blaine.gmane.org with smtp (Exim 4.89) (envelope-from ) id 1hKBuZ-000RTH-Ly for gllmg-musl@m.gmane.org; Sat, 27 Apr 2019 03:13:51 +0200 Original-Received: (qmail 28002 invoked by uid 550); 27 Apr 2019 01:13:47 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 27971 invoked from network); 27 Apr 2019 01:13:47 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=LoMHaFvA3ZDdUkMSsyPG8EQ2Jjlie0UM8jUV5IhxvG0=; b=S8aJabXk8qMaYYLZifcY0joAV97g3VDvhFD8iSRuxwEdZKam9zYmIe0hviUgp5jq9p YXft56kO28fLa5RACuiR/E6V9FJvWyvkGla2L4xD4KD/Ei/tGrXdzn3cLfb/D8/ZmZdm 32MqqnBOHihgsCgN5d5KhIP94etMeNzY0PBKCnrZimlDxnLnOKtRRQ6GGcO4cDRn5FaI EA43GAsxDJswwzIK0wvtfAeMfUh/Z7ZNqTP7yWk9MGDlvkilfxYJBso9M8MS2AqNJIjs 7NRlMQojDHWojShr6ScqiWTl0TOegyl36Af4jS6tzqkSbpWMIBaUk6ZshWPRlkNwcZ4C HZtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=LoMHaFvA3ZDdUkMSsyPG8EQ2Jjlie0UM8jUV5IhxvG0=; b=M42rn3P9MVzs2sPTLWs3K/cV+jcavhCrIE45q3bbaPJzAGBTrXaytl8y5QqpfXVY35 FLIVy7yNAl2XwOf8y9JR0CZEj9D/KSIKF6pVi5D8Lon35ScaSTa+tGG81cQSRiLIX3yi /mnG5pLzLghzhq+RWd9bMpxln/WGlQgXWOgLnWcshfqSDz3ZQufMBraUv1EewfRUD1Ej StrHM0YD/38IMWH2uPs10UyCAZd7kccP2/qmaGRFRWPubpV7cBvDDNvpvBxt4lE/hrM4 NOkBS8lT+5InmCXlOJ70IvLJaO1SH6Pbe4vPmx39Z2QOJByreD4O0/YkknD3aWzMrtu3 Pvkg== X-Gm-Message-State: APjAAAUfEuHAQ+cVQfRmaxXASDR/ipsKCPmMDWn9o7X/axERQfJT6eQw kdpJpLmEcVpPgEVKorwkRaVw+ygh X-Google-Smtp-Source: APXvYqynbwXHjiCDCPpZkryq5LLpvl0F4Bf4j9/elz8JYHegZ5T2Hr74f1D4dRGtR0oIfZAC5cWitA== X-Received: by 2002:a37:4287:: with SMTP id p129mr10210585qka.268.1556327614961; Fri, 26 Apr 2019 18:13:34 -0700 (PDT) X-Mailer: git-send-email 2.7.4 Xref: news.gmane.org gmane.linux.lib.musl.general:14087 Archived-At: --- ldso/dynlink.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ldso/dynlink.c b/ldso/dynlink.c index 3d2e0d8..e311069 100644 --- a/ldso/dynlink.c +++ b/ldso/dynlink.c @@ -1794,6 +1794,22 @@ _Noreturn void __dls3(size_t *sp) } dprintf(1, "\t%s (%p)\n", ldso.name, ldso.base); } + + // Make it look to the app as if it was loaded by the kernel + for (i=0; auxv[i]; i+=2) { + if (auxv[i] == AT_BASE) + auxv[i + 1] = (size_t)ldso.base; + if (auxv[i] == AT_PHDR) + auxv[i + 1] = (size_t)app.phdr; + if (auxv[i] == AT_ENTRY) + auxv[i + 1] = aux[AT_ENTRY]; + if (auxv[i] == AT_PHNUM) + auxv[i + 1] = app.phnum; + if (auxv[i] == AT_PHENT) + auxv[i + 1] = app.phentsize; + if (auxv[i] == AT_EXECFN) + auxv[i + 1] = (size_t)app.name; + } } if (app.tls.size) { libc.tls_head = tls_tail = &app.tls; -- 2.7.4