Gentoo Archives: gentoo-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Google API Go Client packages; slotting?
Date: Tue, 22 Mar 2016 19:11:34
Message-Id: 56F198D9.5@gentoo.org
In Reply to: Re: [gentoo-dev] Google API Go Client packages; slotting? by Andrew Udvare
1 On 03/22/2016 12:33 AM, Andrew Udvare wrote:
2 > On 21/03/16 02:27, Zac Medico wrote:
3 >> Yeah, I know. Anyway, I went ahead and packaged it. Please try it out
4 >> and file bugs if there's anything wrong:
5 >>
6 >> https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f2ebd6535d66e0ba011c1a1beeb33df570dcff8d
7 >>
8 > Works well, except on hardened I get this:
9 >
10 > drive: error while loading shared libraries: cannot make segment
11 > writable for relocation: Permission denied
12 >
13 > strace output:
14 >
15 > execve("/usr/bin/drive", ["drive"], [/* 59 vars */]) = 0
16 > brk(0) = 0x1b63e83750
17 > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
18 > = 0x3d6f913c000
19 > access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or
20 > directory)
21 > open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
22 > fstat(3, {st_mode=S_IFREG|0644, st_size=82250, ...}) = 0
23 > mmap(NULL, 82250, PROT_READ, MAP_PRIVATE, 3, 0) = 0x3d6f911d000
24 > close(3) = 0
25 > open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
26 > read(3,
27 > "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360`\0\0\0\0\0\0"...,
28 > 832) = 832
29 > fstat(3, {st_mode=S_IFREG|0755, st_size=133656, ...}) = 0
30 > mmap(NULL, 2212496, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
31 > 0) = 0x3d6f8cf5000
32 > mprotect(0x3d6f8d0d000, 2093056, PROT_NONE) = 0
33 > mmap(0x3d6f8f0c000, 8192, PROT_READ|PROT_WRITE,
34 > MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x3d6f8f0c000
35 > mmap(0x3d6f8f0e000, 12944, PROT_READ|PROT_WRITE,
36 > MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3d6f8f0e000
37 > close(3) = 0
38 > open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
39 > read(3,
40 > "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\v\2\0\0\0\0\0"...,
41 > 832) = 832
42 > fstat(3, {st_mode=S_IFREG|0755, st_size=1730032, ...}) = 0
43 > mmap(NULL, 3838936, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
44 > 0) = 0x3d6f8945000
45 > mprotect(0x3d6f8ae5000, 2093056, PROT_NONE) = 0
46 > mmap(0x3d6f8ce4000, 24576, PROT_READ|PROT_WRITE,
47 > MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19f000) = 0x3d6f8ce4000
48 > mmap(0x3d6f8cea000, 17368, PROT_READ|PROT_WRITE,
49 > MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3d6f8cea000
50 > close(3) = 0
51 > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
52 > = 0x3d6f913b000
53 > mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
54 > = 0x3d6f9135000
55 > arch_prctl(ARCH_SET_FS, 0x3d6f9135740) = 0
56 > mprotect(0x3d6f8ce4000, 16384, PROT_READ) = 0
57 > mprotect(0x3d6f8f0c000, 4096, PROT_READ) = 0
58 >
59 > mprotect(0x1b617f6000, 12369920, PROT_READ|PROT_WRITE) = -1 EACCES
60 > (Permission denied)
61 >
62 > writev(2, [{"drive", 5}, {": ", 2}, {"error while loading shared
63 > libra"..., 36}, {": ", 2}, {"", 0}, {"", 0}, {"cannot make segment
64 > writable for"..., 43}, {": ", 2}, {"Permission denied", 17}, {"\n", 1}],
65 > 10drive: error while loading shared libraries: cannot make segment
66 > writable for relocation: Permission denied
67 > ) = 108
68 > exit_group(127) = ?
69 > +++ exited with 127 +++
70 >
71
72 There's some information about this type of error here:
73
74 https://wiki.gentoo.org/wiki/Hardened/FAQ#I_keep_getting_the_message:_.22error_while_loading_shared_libraries:_cannot_make_segment_writable_for_relocation:_Permission_denied..22_What_does_this_mean.3F
75
76 Please file a bug, and we'll see about resolving it.
77 --
78 Thanks,
79 Zac