- Apr 14, 2020
-
-
Graham MacDonald authored
-
- Apr 13, 2020
-
-
Ahmed Abd El Mawgood authored
This patch makes use of the data structures and functions impelemented in the last patch to enable RTLD debugging protocol as per SVR4
-
Ahmed Abd El Mawgood authored
-
- Apr 07, 2020
-
-
Ahmed Abd El Mawgood authored
At least in linux kernel, assuming that a.out is an elf that is linked against relibc's own ld.so. When a user attempts `./a.out`, Linux kernel will map `./a.out`, then map `ld.so` and jump into ld.so entry point. In relibc ld.so will simply ignore the kernel mapped a.out and create its own mapping. This patch forces relic ld.so to use the already mapped `a.out` when ever possible. This would normally have slight performance improvement (especially that currently relibc doesn't map a.out but instead copy the data into empty mmaped memory). The real motivation behind this patch is while impelemnting Runtime linker debugging protocol for relibc. part of the protocol is ld.so inseting address of some ld.so managed data structure into .dynamic seciton of a.out then the debugger would check it there. The thing is that debuggers have information about the kernel loaded ./a.out and they check that one specifically which is in our case totally ignored by relibc.
-
- Mar 30, 2020
-
-
Jeremy Soller authored
-
- Mar 11, 2020
-
-
Jeremy Soller authored
-
- Mar 08, 2020
-
-
Ahmed Abd El Mawgood authored
This patch keep 2 lists, one for strong symbols and one for weak symbols. First it will check for the symbol to be resolved in the strong symbols' list, if it is not there it will then check in the weak symbol list.
-
- Mar 07, 2020
-
-
Ahmed Abd El Mawgood authored
These files needs formating by the auto formatter and It keeps popping up every time I format my own code.
-
Ahmed Abd El Mawgood authored
This patch does basically two things: - First make `global` variable not public, And make it accessable via a function `get_sym`. - Isolate the procedure that collect global symbols into single function that does that and call it `collect_syms`. The motivation of this patch is the second one where this procedure is extended, thus it needs a seamless way to access those symbols
-
- Feb 29, 2020
-
-
Jeremy Soller authored
-
- Feb 24, 2020
-
-
Ahmed Abd El Mawgood authored
-
Ahmed Abd El Mawgood authored
Introduction: The original implementation of `relibc_ld_so_start` assumes that ld.so will always be invoked manually as in "/lib/ld64.so ./a.out" The problem is regarding this snippet. if sp.argc < 2 { eprintln!("ld.so [executable] [arguments...]"); unistd::_exit(1); loop {} } As such, In linux when user types "./a.out" he will recieve the message ld.so [executable] [arguments...] This patch makes use of AUXV, specifically AT_ENTRY. When invoking ld.so manually, AT_ENTRY happens to be the entry point of ld.so. But when running `./a.out` directly, AT_ENTRY becomes the entry point of `a.out` this patch compares AT_ENTRY to the entry point of ld.so, if they are equal only then it will assume that argv[1] is the real program and adjust the stack, otherwise it will proceed with the stack unadjusted.
-
- Feb 06, 2020
-
-
Tiago authored
As with the previous commit, accept() was calling inner_get_name() and assuming only "tcp:" or "udp:" addresses would be received. Thus, in order to support AF_UNIX sockets, inner_get_name() was split into two, inner_af_inet() and inner_af_unix() - where the former keeps the previous logic, dealing with "tcp:" and "udp:" addresses, and the latter deals now with "chan:" addresses and filling in the sockaddr_un appropriately.
-
Tiago authored
Previously, domain AF_INET was assumed while processing bind() / connect(), which end up calling bind_or_connect!. Instead, match on the domain type and process the path for AF_UNIX domains.
-
Tiago authored
To add support for UNIX sockets (AF_UNIX), of SOCK_STREAM type, the "chan:" scheme is used, which will be supportedby the ipcd running in userspace. Later commits add similar AF_UNIX support for the rest of the methods in impl PalSocket.
-
Tiago authored
Future commits will make use of this, in order to support AF_UNIX sockets.
-
- Jan 29, 2020
-
-
Jeremy Soller authored
-
- Jan 28, 2020
-
-
Jeremy Soller authored
-
- Jan 22, 2020
-
-
Jeremy Soller authored
-
- Jan 20, 2020
-
-
-
mem::uninitialized is deprecated, so move over the not-UB MaybeUninit.
-
- Dec 19, 2019
-
-
Jeremy Soller authored
-
Jeremy Soller authored
-
Jeremy Soller authored
-
- Dec 18, 2019
-
-
Jeremy Soller authored
-
- Dec 17, 2019
-
-
Jeremy Soller authored
-
- Dec 15, 2019
-
-
Jeremy Soller authored
-
Jeremy Soller authored
-
Jeremy Soller authored
-
- Dec 07, 2019
-
-
Jeremy Soller authored
-
- Dec 05, 2019
-
-
- Dec 01, 2019
-
-
Jeremy Soller authored
-
Jeremy Soller authored
-
- Nov 30, 2019
-
-
Jeremy Soller authored
-
- Nov 28, 2019
-
-
- Nov 14, 2019
-
-
- Sep 19, 2019
-
-
Jeremy Soller authored
-
- Sep 18, 2019
-
-
Jeremy Soller authored
-
AdminXVII authored
-
- Sep 17, 2019
-
-
AdminXVII authored
-