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 |