aboutsummaryrefslogtreecommitdiff
path: root/hacking.c
diff options
context:
space:
mode:
authorCamil Staps2016-01-31 14:52:51 +0100
committerCamil Staps2016-01-31 14:52:51 +0100
commitc8911bdd352577199bdecb23688be9b31771338a (patch)
treee0d3f3486ccc7d0cae08cf7ab0934081899d4320 /hacking.c
parentWorking version (diff)
License, cc=80
Diffstat (limited to 'hacking.c')
-rw-r--r--hacking.c31
1 files changed, 27 insertions, 4 deletions
diff --git a/hacking.c b/hacking.c
index 3b42819..44f6bd3 100644
--- a/hacking.c
+++ b/hacking.c
@@ -1,3 +1,25 @@
+/** The MIT License (MIT)
+
+Copyright (c) 2016 Camil Staps
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE. */
+
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
@@ -17,7 +39,7 @@ Callable* newCallable() {
}
Callable* funcnameToCallable(char* fname,
- uint8_t n_params, ffi_type** parameter_types, ffi_type* return_type) {
+ uint8_t n_params, ffi_type** parameter_types, ffi_type* return_type) {
// http://stackoverflow.com/a/1118808/1544337
Elf64_Shdr * shdr;
Elf64_Ehdr * ehdr;
@@ -41,7 +63,7 @@ Callable* funcnameToCallable(char* fname,
fprintf(stderr, "file is not an ELF binary\n");
exit(1);
}
- /* Let's get the elf sections */
+ /* Let's get the elf sections */
if (((ehdr = elf64_getehdr(elf)) == NULL) ||
((scn = elf_getscn(elf, ehdr->e_shstrndx)) == NULL) ||
((data = elf_getdata(scn, NULL)) == NULL)) {
@@ -63,7 +85,7 @@ Callable* funcnameToCallable(char* fname,
}
Elf64_Sym *esym = (Elf64_Sym*) data->d_buf;
- Elf64_Sym *lastsym = (Elf64_Sym*) ((char*) data->d_buf + data->d_size);
+ Elf64_Sym *lastsym = (Elf64_Sym*) ((char*)data->d_buf+data->d_size);
/* Look through all symbols */
for (; esym < lastsym; esym++) {
@@ -84,7 +106,8 @@ Callable* funcnameToCallable(char* fname,
/* Call and hope we don't segfault!*/
if (fp != NULL) {
- if (ffi_prep_cif(callable->cif, FFI_DEFAULT_ABI, n_params, return_type, parameter_types) == FFI_OK) {
+ if (ffi_prep_cif(callable->cif, FFI_DEFAULT_ABI, n_params,
+ return_type, parameter_types) == FFI_OK) {
elf_end(elf);
callable->fp = fp;
return callable;