projects
/
project
/
procd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
trace: add missing limits.h include
[project/procd.git]
/
trace
/
trace.c
diff --git
a/trace/trace.c
b/trace/trace.c
index
d022079
..
1c1e757
100644
(file)
--- a/
trace/trace.c
+++ b/
trace/trace.c
@@
-25,6
+25,7
@@
#include <errno.h>
#include <string.h>
#include <syslog.h>
#include <errno.h>
#include <string.h>
#include <syslog.h>
+#include <limits.h>
#ifndef PTRACE_EVENT_STOP
/* PTRACE_EVENT_STOP is defined in linux/ptrace.h, but this header
#ifndef PTRACE_EVENT_STOP
/* PTRACE_EVENT_STOP is defined in linux/ptrace.h, but this header
@@
-326,7
+327,7
@@
int main(int argc, char **argv, char **envp)
memcpy(&_envp[newenv], envp, envc * sizeof(char *));
ret = execve(_argv[0], _argv, _envp);
memcpy(&_envp[newenv], envp, envc * sizeof(char *));
ret = execve(_argv[0], _argv, _envp);
- ULOG_ERR("failed to exec %s: %
s\n", _argv[0], strerror(errno)
);
+ ULOG_ERR("failed to exec %s: %
m\n", _argv[0]
);
free(_argv);
free(_envp);
free(_argv);
free(_envp);
@@
-342,6
+343,9
@@
int main(int argc, char **argv, char **envp)
return -1;
}
return -1;
}
+ /* Initialize uloop to catch all ptrace stops from now on. */
+ uloop_init();
+
int ptrace_options = PTRACE_O_TRACEFORK | PTRACE_O_TRACEVFORK | PTRACE_O_TRACECLONE;
switch (mode) {
case UTRACE:
int ptrace_options = PTRACE_O_TRACEFORK | PTRACE_O_TRACEVFORK | PTRACE_O_TRACECLONE;
switch (mode) {
case UTRACE:
@@
-354,15
+358,14
@@
int main(int argc, char **argv, char **envp)
break;
}
if (ptrace(PTRACE_SEIZE, child, 0, ptrace_options) == -1) {
break;
}
if (ptrace(PTRACE_SEIZE, child, 0, ptrace_options) == -1) {
- ULOG_ERR("PTRACE_SEIZE: %
s\n", strerror(errno)
);
+ ULOG_ERR("PTRACE_SEIZE: %
m\n"
);
return -1;
}
if (ptrace(ptrace_restart, child, 0, SIGCONT) == -1) {
return -1;
}
if (ptrace(ptrace_restart, child, 0, SIGCONT) == -1) {
- ULOG_ERR("ptrace_restart: %
s\n", strerror(errno)
);
+ ULOG_ERR("ptrace_restart: %
m\n"
);
return -1;
}
return -1;
}
- uloop_init();
tracer.proc.pid = child;
tracer.proc.cb = tracer_cb;
uloop_process_add(&tracer.proc);
tracer.proc.pid = child;
tracer.proc.cb = tracer_cb;
uloop_process_add(&tracer.proc);
@@
-375,7
+378,7
@@
int main(int argc, char **argv, char **envp)
case UTRACE:
if (!json)
if (asprintf(&json, "/tmp/%s.%u.json", basename(*argv), child) < 0)
case UTRACE:
if (!json)
if (asprintf(&json, "/tmp/%s.%u.json", basename(*argv), child) < 0)
- ULOG_ERR("failed to allocate output path: %
s\n", strerror(errno)
);
+ ULOG_ERR("failed to allocate output path: %
m\n"
);
break;
case SECCOMP_TRACE:
if (!violation_count)
break;
case SECCOMP_TRACE:
if (!violation_count)