Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 30 Oct 2001 23:11:38 -0800 (PST)
From:      Lamont Granquist <lamont@scriptkiddie.org>
To:        <hackers@freebsd.org>
Cc:        <jdp@polstra.com>
Subject:   Re: /etc/ld.so.preload?
Message-ID:  <20011030230606.A35139-200000@coredump.scriptkiddie.org>
In-Reply-To: <20011030181830.R54298-100000@coredump.scriptkiddie.org>

next in thread | previous in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--0-1072188969-1004512298=:35139
Content-Type: TEXT/PLAIN; charset=US-ASCII


Well, here's a short patch to add the necessarily functionality to
/var/run/ld-elf.so.hints and /usr/libexec/ld-elf.so.1.  If this is
acceptable, /sbin/ldconfig would need to be patched.

Looks like the major bug is that if you preload libraries globally you
break linux binary compatibility.

On Tue, 30 Oct 2001, Lamont Granquist wrote:
> Is there anything in FreeBSD that gives this functionality?  My reading of
> src/libexec/rtld-elf/rtld.c in both -stable and -current seems to indicate
> that there isn't any such functionality (i need the global functionality
> that LD_PRELOAD doesn't give me).  I'd be willing to write a patch for it,
> but I'd need some guidance on what would be a proper way to fix it.
>
> I'm thinking of a patch to ldconfig to get /etc/ld.so.preload into the
> hints file and then to hack gethints() in rtld.c to take an argument
> indicating which path you want to return.
>
>
>
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-hackers" in the body of the message
>
>

--0-1072188969-1004512298=:35139
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch
Content-Transfer-Encoding: BASE64
Content-ID: <20011030231138.A35139@coredump.scriptkiddie.org>
Content-Description: preload patch
Content-Disposition: attachment; filename=patch

LS0tIGluY2x1ZGUvZWxmLWhpbnRzLmh+CVR1ZSBPY3QgMzAgMTg6Mjk6NTcg
MjAwMQ0KKysrIGluY2x1ZGUvZWxmLWhpbnRzLmgJVHVlIE9jdCAzMCAxODoz
MTo0NyAyMDAxDQpAQCAtNDAsNyArNDAsMTAgQEANCiAJdV9pbnQzMl90CWRp
cmxpc3Q7CS8qIE9mZnNldCBvZiBkaXJlY3RvcnkgbGlzdCBpbg0KIAkJCQkJ
ICAgc3RyaW5nIHRhYmxlICovDQogCXVfaW50MzJfdAlkaXJsaXN0bGVuOwkv
KiBzdHJsZW4oZGlybGlzdCkgKi8NCi0JdV9pbnQzMl90CXNwYXJlWzI2XTsJ
LyogUm9vbSBmb3IgZXhwYW5zaW9uICovDQorCXVfaW50MzJfdAlwcmVsb2Fk
bGlzdDsJLyogT2Zmc2V0IG9mIHByZWxvYWQgbGlzdCBpbiANCisJCQkJCSAg
IHN0cmluZyB0YWJsZSAqLw0KKwl1X2ludDMyX3QJcHJlbG9hZGxpc3RsZW47
IC8qIHN0cmxlbihwcmVsb2FkbGlzdCkgKi8NCisJdV9pbnQzMl90CXNwYXJl
WzI0XTsJLyogUm9vbSBmb3IgZXhwYW5zaW9uICovDQogfTsNCiANCiAjZGVm
aW5lIEVMRkhJTlRTX01BR0lDCTB4NzQ2ZTY4NDUNCi0tLSBsaWJleGVjL3J0
bGQtZWxmL3J0bGQuY34JVHVlIE9jdCAzMCAxODoyODowMCAyMDAxDQorKysg
bGliZXhlYy9ydGxkLWVsZi9ydGxkLmMJVHVlIE9jdCAzMCAyMTowNjozOSAy
MDAxDQpAQCAtNTIsOCArNTIsMTAgQEANCiAjaW5jbHVkZSAiZGVidWcuaCIN
CiAjaW5jbHVkZSAicnRsZC5oIg0KIA0KLSNkZWZpbmUgRU5EX1NZTQkJIl9l
bmQiDQotI2RlZmluZSBQQVRIX1JUTEQJIi91c3IvbGliZXhlYy9sZC1lbGYu
c28uMSINCisjZGVmaW5lIEVORF9TWU0JCQkiX2VuZCINCisjZGVmaW5lIFBB
VEhfUlRMRAkJIi91c3IvbGliZXhlYy9sZC1lbGYuc28uMSINCisjZGVmaW5l
IEhJTlRfTElCUkFSWV9QQVRICTB4MDENCisjZGVmaW5lIEhJTlRfUFJFTE9B
RAkJMHgwMg0KIA0KIC8qIFR5cGVzLiAqLw0KIHR5cGVkZWYgdm9pZCAoKmZ1
bmNfcHRyX3R5cGUpKCk7DQpAQCAtODAsNyArODIsNyBAQA0KIHN0YXRpYyB2
b2lkIGVycm1zZ19yZXN0b3JlKGNoYXIgKik7DQogc3RhdGljIGNoYXIgKmVy
cm1zZ19zYXZlKHZvaWQpOw0KIHN0YXRpYyBjaGFyICpmaW5kX2xpYnJhcnko
Y29uc3QgY2hhciAqLCBjb25zdCBPYmpfRW50cnkgKik7DQotc3RhdGljIGNv
bnN0IGNoYXIgKmdldGhpbnRzKHZvaWQpOw0KK3N0YXRpYyBjaGFyICpnZXRo
aW50cyhpbnQpOw0KIHN0YXRpYyB2b2lkIGluaXRfZGFnKE9ial9FbnRyeSAq
KTsNCiBzdGF0aWMgdm9pZCBpbml0X2RhZzEoT2JqX0VudHJ5ICpyb290LCBP
YmpfRW50cnkgKm9iaiwgRG9uZUxpc3QgKik7DQogc3RhdGljIHZvaWQgaW5p
dF9ydGxkKGNhZGRyX3QpOw0KQEAgLTkxLDcgKzkzLDcgQEANCiBzdGF0aWMg
dm9pZCBsaW5rbWFwX2FkZChPYmpfRW50cnkgKik7DQogc3RhdGljIHZvaWQg
bGlua21hcF9kZWxldGUoT2JqX0VudHJ5ICopOw0KIHN0YXRpYyBpbnQgbG9h
ZF9uZWVkZWRfb2JqZWN0cyhPYmpfRW50cnkgKik7DQotc3RhdGljIGludCBs
b2FkX3ByZWxvYWRfb2JqZWN0cyh2b2lkKTsNCitzdGF0aWMgaW50IGxvYWRf
cHJlbG9hZF9vYmplY3RzKGNoYXIgKik7DQogc3RhdGljIE9ial9FbnRyeSAq
bG9hZF9vYmplY3QoY2hhciAqKTsNCiBzdGF0aWMgdm9pZCBsb2NrX2NoZWNr
KHZvaWQpOw0KIHN0YXRpYyBPYmpfRW50cnkgKm9ial9mcm9tX2FkZHIoY29u
c3Qgdm9pZCAqKTsNCkBAIC0zNTksNyArMzYxLDkgQEANCiAgICAgc3ltX3pl
cm8uc3Rfc2huZHggPSBTSE5fQUJTOw0KIA0KICAgICBkYmcoImxvYWRpbmcg
TERfUFJFTE9BRCBsaWJyYXJpZXMiKTsNCi0gICAgaWYgKGxvYWRfcHJlbG9h
ZF9vYmplY3RzKCkgPT0gLTEpDQorICAgIGlmIChsb2FkX3ByZWxvYWRfb2Jq
ZWN0cyhsZF9wcmVsb2FkKSA9PSAtMSkNCisJZGllKCk7DQorICAgIGlmIChs
b2FkX3ByZWxvYWRfb2JqZWN0cyhnZXRoaW50cyhISU5UX1BSRUxPQUQpKSA9
PSAtMSkNCiAJZGllKCk7DQogICAgIHByZWxvYWRfdGFpbCA9IG9ial90YWls
Ow0KIA0KQEAgLTgwNSw3ICs4MDksNyBAQA0KICAgICBpZiAoKHJlZm9iaiAh
PSBOVUxMICYmDQogICAgICAgKHBhdGhuYW1lID0gc2VhcmNoX2xpYnJhcnlf
cGF0aChuYW1lLCByZWZvYmotPnJwYXRoKSkgIT0gTlVMTCkgfHwNCiAgICAg
ICAocGF0aG5hbWUgPSBzZWFyY2hfbGlicmFyeV9wYXRoKG5hbWUsIGxkX2xp
YnJhcnlfcGF0aCkpICE9IE5VTEwgfHwNCi0gICAgICAocGF0aG5hbWUgPSBz
ZWFyY2hfbGlicmFyeV9wYXRoKG5hbWUsIGdldGhpbnRzKCkpKSAhPSBOVUxM
IHx8DQorICAgICAgKHBhdGhuYW1lID0gc2VhcmNoX2xpYnJhcnlfcGF0aChu
YW1lLCBnZXRoaW50cyhISU5UX0xJQlJBUllfUEFUSCkpKSAhPSBOVUxMIHx8
DQogICAgICAgKHBhdGhuYW1lID0gc2VhcmNoX2xpYnJhcnlfcGF0aChuYW1l
LCBTVEFOREFSRF9MSUJSQVJZX1BBVEgpKSAhPSBOVUxMKQ0KIAlyZXR1cm4g
cGF0aG5hbWU7DQogDQpAQCAtODczLDE4ICs4NzcsMjAgQEANCiAgKiBuZWNl
c3NhcnkuICBSZXR1cm5zIE5VTEwgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdp
dGggdGhlIGhpbnRzIGZpbGUsDQogICogb3IgaWYgdGhlIHNlYXJjaCBwYXRo
IHRoZXJlIGlzIGVtcHR5Lg0KICAqLw0KLXN0YXRpYyBjb25zdCBjaGFyICoN
Ci1nZXRoaW50cyh2b2lkKQ0KK3N0YXRpYyBjaGFyICoNCitnZXRoaW50cyhp
bnQgaGludGZsYWcpDQogew0KLSAgICBzdGF0aWMgY2hhciAqaGludHM7DQor
ICAgIHN0YXRpYyBjaGFyICpwcmVsb2FkOw0KKyAgICBzdGF0aWMgY2hhciAq
bGlicmFyeV9wYXRoOw0KIA0KLSAgICBpZiAoaGludHMgPT0gTlVMTCkgew0K
KyAgICBpZiAoKGxpYnJhcnlfcGF0aCA9PSBOVUxMKSB8fCAocHJlbG9hZCA9
PSBOVUxMKSkgew0KIAlpbnQgZmQ7DQogCXN0cnVjdCBlbGZoaW50c19oZHIg
aGRyOw0KIAljaGFyICpwOw0KIA0KIAkvKiBLZWVwIGZyb20gdHJ5aW5nIGFn
YWluIGluIGNhc2UgdGhlIGhpbnRzIGZpbGUgaXMgYmFkLiAqLw0KLQloaW50
cyA9ICIiOw0KKwlsaWJyYXJ5X3BhdGggPSAiIjsNCisJcHJlbG9hZCA9ICIi
Ow0KIA0KIAlpZiAoKGZkID0gb3BlbihfUEFUSF9FTEZfSElOVFMsIE9fUkRP
TkxZKSkgPT0gLTEpDQogCSAgICByZXR1cm4gTlVMTDsNCkBAIC05MDEsMTAg
KzkwNywyNSBAQA0KIAkgICAgY2xvc2UoZmQpOw0KIAkgICAgcmV0dXJuIE5V
TEw7DQogCX0NCi0JaGludHMgPSBwOw0KKwlsaWJyYXJ5X3BhdGggPSBwOw0K
KwlwID0geG1hbGxvYyhoZHIucHJlbG9hZGxpc3RsZW4gKyAxKTsNCisJaWYg
KGxzZWVrKGZkLCBoZHIuc3RydGFiICsgaGRyLnByZWxvYWRsaXN0LCBTRUVL
X1NFVCkgPT0gLTEgfHwNCisJICByZWFkKGZkLCBwLCBoZHIucHJlbG9hZGxp
c3RsZW4gKyAxKSAhPSBoZHIucHJlbG9hZGxpc3RsZW4gKyAxKSB7DQorCSAg
ICBmcmVlKHApOw0KKwkgICAgY2xvc2UoZmQpOw0KKwkgICAgcmV0dXJuIE5V
TEw7DQorCX0NCisJcHJlbG9hZCA9IHA7DQogCWNsb3NlKGZkKTsNCiAgICAg
fQ0KLSAgICByZXR1cm4gaGludHNbMF0gIT0gJ1wwJyA/IGhpbnRzIDogTlVM
TDsNCisgICAgc3dpdGNoIChoaW50ZmxhZykgew0KKwljYXNlIEhJTlRfTElC
UkFSWV9QQVRIOg0KKyAgICAgICAgICByZXR1cm4gbGlicmFyeV9wYXRoWzBd
ICE9ICdcMCcgPyBsaWJyYXJ5X3BhdGggOiBOVUxMOw0KKwljYXNlIEhJTlRf
UFJFTE9BRDoNCisgICAgICAgICAgcmV0dXJuIHByZWxvYWRbMF0gIT0gJ1ww
JyA/IHByZWxvYWQgOiBOVUxMOw0KKwlkZWZhdWx0Og0KKwkgIHJldHVybiBO
VUxMOw0KKyAgICB9DQogfQ0KIA0KIHN0YXRpYyB2b2lkDQpAQCAtMTA3Nyw5
ICsxMDk4LDggQEANCiB9DQogDQogc3RhdGljIGludA0KLWxvYWRfcHJlbG9h
ZF9vYmplY3RzKHZvaWQpDQorbG9hZF9wcmVsb2FkX29iamVjdHMoY2hhciAq
cCkNCiB7DQotICAgIGNoYXIgKnAgPSBsZF9wcmVsb2FkOw0KICAgICBzdGF0
aWMgY29uc3QgY2hhciBkZWxpbVtdID0gIiBcdDo7IjsNCiANCiAgICAgaWYg
KHAgPT0gTlVMTCkNCg==
--0-1072188969-1004512298=:35139--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011030230606.A35139-200000>