From: Mark H Weaver <mhw@netris.org>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: 24703@debbugs.gnu.org
Subject: bug#24703: Store references in 8-byte chunks in compiled code
Date: Mon, 17 Oct 2016 23:36:57 -0400 [thread overview]
Message-ID: <87k2d6qqee.fsf@netris.org> (raw)
In-Reply-To: <87h98bdvng.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Mon, 17 Oct 2016 14:09:39 +0200")
ludo@gnu.org (Ludovic Courtès) writes:
> Török Edwin <edwin+ml-guix@etorok.net> skribis:
>
>> On 2016-10-16 22:04, Ludovic Courtès wrote:
>>> Mark H Weaver <mhw@netris.org> skribis:
>>>
>>>> When grafting, how will we achieve confidence that we've found the
>>>> correct occurrence of the last character? I think we will have to give
>>>> up our recently added feature of being able to change the version number
>>>> of grafts.
>>>
>>> Wait, don’t jump to the conclusions. :-)
>>
>> I've just encountered the same problem with fontconfig (after installing GuixSD, running guix pull and guix system reconfigure, --no-grafts was required).
>> Would it be possible for the grafts to keep a symlink (somehow
>> registered to be part of the grafted fontconfig so that guix gc
>> doesn't remove it) instead of patching the binaries?
>> /gnu/store/<old-hash>-fontconfig-2.11.94 -> /gnu/store/<grafted-hash>-fontconfig-2.11.94
>
> We could use a self symlink, or we could use something like
> <http://git.savannah.gnu.org/cgit/guix.git/commit/?id=9d50da70608de32d9db0c29859caec6f2cddb95f>.
>
> Mark, WDYT?
>
> What remains to be seen is how many packages are affected by this issue,
> and whether a generic solution needs to be found.
Unfortunately, it is too widespread. As I just pointed out in
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24712#13
Among the many packages that include these obfuscated store references,
one is 'glibc-final'. My attempt to graft 'bash' in 'master' to fix
CVE-2016-0634 and CVE-2016-7543 has resulted in a system where I cannot
build *any* derivation, because 'guile-final' crashes during boot while
its 'glibc-final' tries to find its 'gconv' modules in the ungrafted
'glibc-final', which is not available in the build environment.
So, if our approach is to use -fno-builtin-strcpy, then we will have to
apply it system-wide, and rebuild all of 'core-updates' from scratch.
I've been investigating another approach: to enhance our scanner and
grafter to handle these 8-byte-chunked references. I believe it is
feasible, but only if we abandon the ability to change the file names of
grafts outside of the hash. The reason is that the hash portion of
store references are surrounded by enough other known characters on both
sides that the hash portion is almost always contained entirely within
8-byte chunks.
To be continued...
Mark
next prev parent reply other threads:[~2016-10-18 3:38 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-16 3:49 bug#24703: fontconfig keeps obfuscated reference to itself, not grafted Mark H Weaver
2016-10-16 4:26 ` Mark H Weaver
2016-10-16 5:00 ` Mark H Weaver
2016-10-16 6:24 ` bug#24703: Store references in 8-byte chunks in compiled code Mark H Weaver
2016-10-16 9:03 ` Mark H Weaver
2016-10-16 9:25 ` Mark H Weaver
2016-10-16 10:15 ` Mark H Weaver
2016-10-16 19:04 ` Ludovic Courtès
2016-10-17 7:46 ` bug#24703: " Török Edwin
2016-10-17 9:42 ` Mark H Weaver
2016-10-17 12:09 ` Ludovic Courtès
2016-10-18 3:36 ` Mark H Weaver [this message]
2016-10-18 8:59 ` Ludovic Courtès
2016-10-31 6:35 ` Mark H Weaver
2016-10-31 11:37 ` Ludovic Courtès
2016-10-24 19:40 ` Leo Famulari
2016-10-24 20:18 ` Ludovic Courtès
2016-11-04 23:15 ` Ludovic Courtès
2016-11-05 18:36 ` Leo Famulari
2016-11-06 20:58 ` Ludovic Courtès
2016-11-09 20:40 ` Ludovic Courtès
2016-11-09 23:16 ` Leo Famulari
2016-11-10 8:01 ` Ludovic Courtès
2017-04-02 22:19 ` Ludovic Courtès
2016-11-11 10:39 ` Ludovic Courtès
2016-10-19 21:25 ` Török Edwin
2016-10-20 12:25 ` Ludovic Courtès
2016-10-16 14:42 ` bug#24703: fontconfig keeps obfuscated reference to itself, not grafted Ludovic Courtès
2016-10-16 15:06 ` Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87k2d6qqee.fsf@netris.org \
--to=mhw@netris.org \
--cc=24703@debbugs.gnu.org \
--cc=ludo@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.