diff --git a/Makefile b/Makefile index fd39b03..5fb5223 100644 --- a/Makefile +++ b/Makefile @@ -25,7 +25,7 @@ ifeq ("$(origin LD)", "default") undefine LD endif -CFLAGS = -Wall -Werror +CFLAGS = -Wall -Werror -Wmissing-prototypes # memcr CFLAGS MCFLAGS = $(CFLAGS) -g # parasite CFLAGS diff --git a/arch/arm/cpu.c b/arch/arm/cpu.c index 55b1e8f..cf42eef 100644 --- a/arch/arm/cpu.c +++ b/arch/arm/cpu.c @@ -21,7 +21,7 @@ #include #include -#include "cpu.h" +#include "../cpu.h" void set_cpu_regs(struct registers *regs, unsigned long *pc, unsigned long arg0, unsigned long arg1) { diff --git a/arch/arm64/cpu.c b/arch/arm64/cpu.c index fa6d089..75103d9 100644 --- a/arch/arm64/cpu.c +++ b/arch/arm64/cpu.c @@ -21,7 +21,7 @@ #include #include -#include "cpu.h" +#include "../cpu.h" void set_cpu_regs(struct registers *regs, unsigned long *pc, unsigned long arg0, unsigned long arg1) { diff --git a/arch/syscall.c b/arch/syscall.c index 508609e..e5e33d9 100644 --- a/arch/syscall.c +++ b/arch/syscall.c @@ -30,6 +30,8 @@ #error unsupported arch #endif +#include "syscall.h" + ssize_t sys_read(int fd, void *buf, size_t count) { return syscall3(__NR_read, fd, (unsigned long)buf, count); diff --git a/arch/syscall.h b/arch/syscall.h index 4317804..d17a925 100644 --- a/arch/syscall.h +++ b/arch/syscall.h @@ -22,7 +22,7 @@ ssize_t sys_read(int fd, void *buf, size_t count); ssize_t sys_write(int fd, const void *buf, size_t count); int sys_close(int fd); -int sys_mprotect(unsigned long addr, size_t len, int prot); +int sys_mprotect(unsigned long addr, size_t len, unsigned long prot); int sys_madvise(unsigned long addr, size_t len, int advice); int sys_socket(int family, int type, int protocol); int sys_accept(int fd, struct sockaddr *addr, socklen_t *addrlen); diff --git a/arch/x86_64/cpu.c b/arch/x86_64/cpu.c index b0248fc..fc06782 100644 --- a/arch/x86_64/cpu.c +++ b/arch/x86_64/cpu.c @@ -20,7 +20,7 @@ #include #include -#include "cpu.h" +#include "../cpu.h" void set_cpu_regs(struct registers *regs, unsigned long *pc, unsigned long arg0, unsigned long arg1) { diff --git a/arch/x86_64/enter.c b/arch/x86_64/enter.c index a583cbc..25eb5e4 100644 --- a/arch/x86_64/enter.c +++ b/arch/x86_64/enter.c @@ -16,12 +16,11 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */ -#define _GNU_SOURCE #include #include -#include +#include -void __attribute__((used)) container(void) +static void __attribute__((used)) container(void) { /* * Upon completion, each blob triggers debug trap to pass the diff --git a/libencrypt.c b/libencrypt.c index 8cd4c27..db0d094 100644 --- a/libencrypt.c +++ b/libencrypt.c @@ -47,6 +47,16 @@ static int block_size; static unsigned char key[16]; static unsigned char iv[16]; +/* + * Prototypes matching memcr. + */ +int lib__open(const char *pathname, int flags, mode_t mode); +int lib__close(int fd); +int lib__read(int fd, void *buf, size_t count); +int lib__write(int fd, const void *buf, size_t count); +int lib__init(int enable, const char *arg); +int lib__fini(void); + int lib__open(const char *pathname, int flags, mode_t mode) { diff --git a/memcr.c b/memcr.c index c9565fb..7251321 100644 --- a/memcr.c +++ b/memcr.c @@ -1759,7 +1759,7 @@ static int setup_parasite_args(pid_t pid, void *base) } -void *parasite_watch_thread(void *ptr) +static void *parasite_watch_thread(void *ptr) { int ret; unsigned long pid = (unsigned long)ptr; @@ -1785,7 +1785,7 @@ void *parasite_watch_thread(void *ptr) return NULL; } -int parasite_watch(pid_t pid) +static int parasite_watch(pid_t pid) { int ret; pthread_t id; @@ -2225,7 +2225,7 @@ static void restore_procedure_service(int cd, struct service_command svc_cmd) } } -void register_signal_handlers() +static void register_signal_handlers(void) { struct sigaction sigchld_action, sigpipe_action; @@ -2437,7 +2437,7 @@ static void usage(const char *name, int status) exit(status); } -void die(const char *fmt, ...) +static void die(const char *fmt, ...) { va_list ap; diff --git a/parasite.c b/parasite.c index 4b0150a..94d6f43 100644 --- a/parasite.c +++ b/parasite.c @@ -36,6 +36,8 @@ static int finish; +void service(unsigned int cmd, void *args); + #if VERBOSE == 1 static char *long_to_str(long v) {