From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.1 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 28844 invoked from network); 25 Sep 2020 07:32:41 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 25 Sep 2020 07:32:41 -0000 Received: (qmail 29883 invoked by uid 550); 25 Sep 2020 07:32:39 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 23893 invoked from network); 25 Sep 2020 03:50:21 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=to:from:subject:autocrypt:message-id:date:mime-version :content-language; bh=L1TVcZR3ly4xKdjgrEdBsW91qTLWMMs9ZNVaaj6NKSg=; b=Iqb1C2nxy2pzyugWeh7vLyDYukxpXCebMNogVNE6PQxyS5QrXQ6y5ymzVDfbHYcP6p SKzIhzk7znM7ORa3wZuXCvfcwhs1uTA282L8pVUSuXCqB+fwPEqoXA5L9jEaOz7NGng8 lu2IP9V0of0yi9ySfHwB2ILhapYbHFRenKRKih0zJCAfxwbOBr2xl4VmWVrMKN+ECpSM H/V2FXXKM/jJI5Ja0+ExyYbNTWMiP5SAbGuRAzm2uxi0dwTsZ7csPS0jPi6dIu0o21PY mz3hWjt/aGLvumbNslDzAQ1fELn5y8hh4ywd9z2uBFinteZcsAovuKA6iG2ROUMNCha3 VUbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:from:subject:autocrypt:message-id:date :mime-version:content-language; bh=L1TVcZR3ly4xKdjgrEdBsW91qTLWMMs9ZNVaaj6NKSg=; b=FctjbpJwZdsnCtJwMbNLm8VDtFSVaxs7mPLukokgSBnE5ar3+yXDyB99hETwWFr1Ic 21jDPCO05WR9PsBdq3NOk3X11VpaGfV3eSkYKQOB4X6HJw+vw/kZSmHdx0V77EtvGs0p V4TWSVL/DZGFBURRvzMY3X/4TlFw2MNJNaZPYxktq1nWzOyiZ1klE75p3QguLcaI/qMA 1vcH1xpVfYk1tYdlEpBqEgM9aD4HBA7t6ib34aMZXoAHBxanEJsgupd2MRozt4cz8U6+ YZI91/DgmoiP+UfeBqOj96rrKFrR1M8hoy5VB+VO9w9gnKMDxIg0oU/jYFLshTmNLacm leVA== X-Gm-Message-State: AOAM533+hSMGheYTWZE+i8LSGUcPACBzUYbKnEBGlOUjPC3Uhey3Wt1E R9/Pj54MQzBWCAfIwFzw1L3oRxrS6GCG/Q== X-Google-Smtp-Source: ABdhPJwLjEt+of+ZobuN6kA5iFFrTp/WXhHlk30unKvQGhQIZVZWJUQB9/0DUCXOw2QZmubH4AdekQ== X-Received: by 2002:aed:2405:: with SMTP id r5mr2348270qtc.99.1601005808731; Thu, 24 Sep 2020 20:50:08 -0700 (PDT) To: musl@lists.openwall.com From: Dominic Chen Autocrypt: addr=d.c.ddcc@gmail.com; prefer-encrypt=mutual; keydata= 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 SP1d4L0/7aR4qw== Message-ID: Date: Thu, 24 Sep 2020 23:50:19 -0400 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------3D969B7558BF939CDEE1CBA6" Content-Language: en-US Subject: [musl] SIGSEGV with TEXTREL This is a multi-part message in MIME format. --------------3D969B7558BF939CDEE1CBA6 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Please CC me on replies. I recently discovered that musl doesn't support DT/DF_TEXTREL in the main executable, which can result in the dynamic loader crashing with SIGSEGV and SEGV_ACCERR while processing relocations. I spent a few days trying to fix this in the toolchain, but because it is a prototype based on Clang/LLVM 4.0.0 that adds runtime instrumentation built using the x64 large code model, so it's not easy to fix. Also, glibc does support this behavior. I ended up implementing support for this in musl itself (patch attached), but given the discussion in the previous thread, "Static linking is broken after creation of DT_TEXTREL," it seems like this isn't acceptable due to overhead? I don't quite understand the concern, because the loader needs to iterate again over the program headers only if the program contains TEXTRELs, which is strictly an improvement, even if the iteration itself is suboptimal. Alternatively, I'd suggest that musl at least warns about unsupported TEXTRELs if present, because asking application developers to debug a crashing ELF loader is quite a high bar. Thanks, Dominic --------------3D969B7558BF939CDEE1CBA6 Content-Type: text/plain; charset=UTF-8; name="musl-textrel.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="musl-textrel.patch" ZGlmZiAtLWdpdCBhL2xkc28vZHlubGluay5jIGIvbGRzby9keW5saW5rLmMKaW5kZXggZDc3 MjYxMTguLmM3NDQ5ZGYyIDEwMDY0NAotLS0gYS9sZHNvL2R5bmxpbmsuYworKysgYi9sZHNv L2R5bmxpbmsuYwpAQCAtMTMyNiwxMCArMTMyNiwzMiBAQCBzdGF0aWMgdm9pZCBkb19taXBz X3JlbG9jcyhzdHJ1Y3QgZHNvICpwLCBzaXplX3QgKmdvdCkKIAogc3RhdGljIHZvaWQgcmVs b2NfYWxsKHN0cnVjdCBkc28gKnApCiB7CisJdW5zaWduZWQgY2hhciB0ZXh0cmVsID0gMDsK IAlzaXplX3QgZHluW0RZTl9DTlRdOwogCWZvciAoOyBwOyBwPXAtPm5leHQpIHsKIAkJaWYg KHAtPnJlbG9jYXRlZCkgY29udGludWU7CiAJCWRlY29kZV92ZWMocC0+ZHludiwgZHluLCBE WU5fQ05UKTsKKworCQlpZiAoKGR5blswXSAmIDE8PERUX1RFWFRSRUwpIHx8IChkeW5bRFRf RkxBR1NdICYgREZfVEVYVFJFTCkpIHsKKwkJCXNpemVfdCBjbnQgPSBwLT5waG51bTsKKwkJ CVBoZHIgKnBoID0gcC0+cGhkcjsKKwkJCWZvciAoOyBjbnQtLTsgcGggPSAodm9pZCAqKSgo Y2hhciAqKXBoICsgcC0+cGhlbnRzaXplKSkgeworCQkJCWlmIChwaC0+cF90eXBlID09IFBU X0xPQUQgJiYgIShwaC0+cF9mbGFncyAmIFBGX1cpKSB7CisJCQkJCXVuc2lnbmVkIHByb3Qg PSAoKChwaC0+cF9mbGFncyZQRl9SKSA/IFBST1RfUkVBRCA6IDApIHwKKwkJCQkJCQkJCSgo cGgtPnBfZmxhZ3MmUEZfWCkgPyBQUk9UX0VYRUMgOiAwKSk7CisJCQkJCXNpemVfdCBzdGFy dCA9IHBoLT5wX3ZhZGRyICYgLVBBR0VfU0laRSwKKwkJCQkJICAgICAgIGVuZCA9IChwaC0+ cF92YWRkciArIHBoLT5wX21lbXN6ICsgUEFHRV9TSVpFLTEpICYgLVBBR0VfU0laRTsKKwkJ CQkJaWYgKG1wcm90ZWN0KGxhZGRyKHAsIHN0YXJ0KSwgZW5kIC0gc3RhcnQsIHByb3R8UFJP VF9XUklURSkKKwkJCQkJCSYmIGVycm5vICE9IEVOT1NZUykgeworCQkJCQkJZXJyb3IoIkVy cm9yIHJlbG9jYXRpbmcgJXM6IFRFWFRSRUwgdW5wcm90ZWN0IGZhaWxlZDogJW0iLAorCQkJ CQkJcC0+bmFtZSk7CisJCQkJCQlpZiAocnVudGltZSkgbG9uZ2ptcCgqcnRsZF9mYWlsLCAx KTsKKwkJCQkJfQorCQkJCQl0ZXh0cmVsID0gMTsKKwkJCQl9CisJCQl9CisJCX0KKwogCQlp ZiAoTkVFRF9NSVBTX0dPVF9SRUxPQ1MpCiAJCQlkb19taXBzX3JlbG9jcyhwLCBsYWRkcihw LCBkeW5bRFRfUExUR09UXSkpOwogCQlkb19yZWxvY3MocCwgbGFkZHIocCwgZHluW0RUX0pN UFJFTF0pLCBkeW5bRFRfUExUUkVMU1pdLApAQCAtMTM0NSw2ICsxMzY3LDI1IEBAIHN0YXRp YyB2b2lkIHJlbG9jX2FsbChzdHJ1Y3QgZHNvICpwKQogCQkJaWYgKHJ1bnRpbWUpIGxvbmdq bXAoKnJ0bGRfZmFpbCwgMSk7CiAJCX0KIAorCQlpZiAodGV4dHJlbCkgeworCQkJc2l6ZV90 IGNudCA9IHAtPnBobnVtOworCQkJUGhkciAqcGggPSBwLT5waGRyOworCQkJZm9yICg7IGNu dC0tOyBwaCA9ICh2b2lkICopKChjaGFyICopcGggKyBwLT5waGVudHNpemUpKSB7CisJCQkJ aWYgKHBoLT5wX3R5cGUgPT0gUFRfTE9BRCAmJiAhKHBoLT5wX2ZsYWdzICYgUEZfVykpIHsK KwkJCQkJdW5zaWduZWQgcHJvdCA9ICgoKHBoLT5wX2ZsYWdzJlBGX1IpID8gUFJPVF9SRUFE IDogMCkgfAorCQkJCQkJCQkJKChwaC0+cF9mbGFncyZQRl9YKSA/IFBST1RfRVhFQyA6IDAp KTsKKwkJCQkJc2l6ZV90IHN0YXJ0ID0gcGgtPnBfdmFkZHIgJiAtUEFHRV9TSVpFLAorCQkJ CQkgICAgICAgZW5kID0gKHBoLT5wX3ZhZGRyICsgcGgtPnBfbWVtc3ogKyBQQUdFX1NJWkUt MSkgJiAtUEFHRV9TSVpFOworCQkJCQlpZiAobXByb3RlY3QobGFkZHIocCwgc3RhcnQpLCBl bmQgLSBzdGFydCwgcHJvdCkKKwkJCQkJCSYmIGVycm5vICE9IEVOT1NZUykgeworCQkJCQkJ ZXJyb3IoIkVycm9yIHJlbG9jYXRpbmcgJXM6IFRFWFRSRUwgcHJvdGVjdCBmYWlsZWQ6ICVt IiwKKwkJCQkJCXAtPm5hbWUpOworCQkJCQkJaWYgKHJ1bnRpbWUpIGxvbmdqbXAoKnJ0bGRf ZmFpbCwgMSk7CisJCQkJCX0KKwkJCQl9CisJCQl9CisJCX0KKwogCQlwLT5yZWxvY2F0ZWQg PSAxOwogCX0KIH0K --------------3D969B7558BF939CDEE1CBA6--