proj/intercept.c: Fix some dumb bugs
This commit is contained in:
@@ -1405,6 +1405,7 @@ int sym(sigaction)(int sig, const struct sigaction *restrict act, struct sigacti
|
|||||||
Dl_info info;
|
Dl_info info;
|
||||||
if (!dladdr(ret_addr, &info) || !func_flags[func_idx_sigaction] || !lib_flags[lib_idx]) return __real_sigaction(sig, act, oact);
|
if (!dladdr(ret_addr, &info) || !func_flags[func_idx_sigaction] || !lib_flags[lib_idx]) return __real_sigaction(sig, act, oact);
|
||||||
const char *sigstr = getsigstr(sig);
|
const char *sigstr = getsigstr(sig);
|
||||||
|
char src_file[256];
|
||||||
if (act != NULL) {
|
if (act != NULL) {
|
||||||
char *name = "sa_handler";
|
char *name = "sa_handler";
|
||||||
#pragma GCC diagnostic push
|
#pragma GCC diagnostic push
|
||||||
@@ -1428,13 +1429,12 @@ int sym(sigaction)(int sig, const struct sigaction *restrict act, struct sigacti
|
|||||||
strcat(maskstr, getsigstr(i));
|
strcat(maskstr, getsigstr(i));
|
||||||
}
|
}
|
||||||
if (!verbosity) {
|
if (!verbosity) {
|
||||||
msg("sigaction(%i:%s, %p:{}, %p)" ret_str, sig, sigstr, act, oact, ret_addr);
|
msg("sigaction(%i:%s, %p:{}, %p)" ret_str, sig, sigstr, act, oact, ret_data);
|
||||||
} else {
|
} else {
|
||||||
char src_file[256];
|
|
||||||
msg("sigaction(%i:%s, %p:{sa_flags: 0x%x:%s, %s: %p, sa_mask: [%s]}, %p)" ret_str, sig, sigstr, act, act->sa_flags, flgstr, name, ptr, maskstr, oact, ret_data);
|
msg("sigaction(%i:%s, %p:{sa_flags: 0x%x:%s, %s: %p, sa_mask: [%s]}, %p)" ret_str, sig, sigstr, act, act->sa_flags, flgstr, name, ptr, maskstr, oact, ret_data);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
msg("sigaction(%i:%s, %p:{}, %p): %p", sig, sigstr, act, oact, ret_addr);
|
msg("sigaction(%i:%s, %p:{}, %p)" ret_str, sig, sigstr, act, oact, ret_data);
|
||||||
}
|
}
|
||||||
if (mode >= 4) {
|
if (mode >= 4) {
|
||||||
char msg_buf[BUFFER_SIZE];
|
char msg_buf[BUFFER_SIZE];
|
||||||
@@ -1978,7 +1978,8 @@ pid_t sym(fork)(void) {
|
|||||||
init();
|
init();
|
||||||
Dl_info info;
|
Dl_info info;
|
||||||
if (!dladdr(ret_addr, &info) || !func_flags[func_idx_fork] || !lib_flags[lib_idx]) return __real_fork();
|
if (!dladdr(ret_addr, &info) || !func_flags[func_idx_fork] || !lib_flags[lib_idx]) return __real_fork();
|
||||||
msg("fork(): %p", ret_addr);
|
char src_file[256];
|
||||||
|
msg("fork()" ret_str, ret_data);
|
||||||
if (mode >= 4) {
|
if (mode >= 4) {
|
||||||
char msg_buf[BUFFER_SIZE];
|
char msg_buf[BUFFER_SIZE];
|
||||||
rcv(msg_buf, sizeof(msg_buf));
|
rcv(msg_buf, sizeof(msg_buf));
|
||||||
@@ -2768,7 +2769,7 @@ ssize_t sym(getline)(char **restrict lineptr, size_t *restrict n, FILE *restrict
|
|||||||
Dl_info info;
|
Dl_info info;
|
||||||
if (!dladdr(ret_addr, &info) || !func_flags[func_idx_getline] || !lib_flags[lib_idx]) return __real_getline(lineptr, n, stream);
|
if (!dladdr(ret_addr, &info) || !func_flags[func_idx_getline] || !lib_flags[lib_idx]) return __real_getline(lineptr, n, stream);
|
||||||
char src_file[256];
|
char src_file[256];
|
||||||
msg("getline(%p:%p, %p:%li, %p)" ret_str, lineptr, lineptr != NULL ? lineptr : NULL, n, n != NULL ? *n : 0, stream, ret_data);
|
msg("getline(%p:%p, %p:%li, %p)" ret_str, lineptr, lineptr != NULL ? *lineptr : NULL, n, n != NULL ? *n : 0, stream, ret_data);
|
||||||
if (mode >= 4) {
|
if (mode >= 4) {
|
||||||
char msg_buf[BUFFER_SIZE];
|
char msg_buf[BUFFER_SIZE];
|
||||||
rcv(msg_buf, sizeof(msg_buf));
|
rcv(msg_buf, sizeof(msg_buf));
|
||||||
@@ -2793,7 +2794,7 @@ ssize_t sym(getdelim)(char **restrict lineptr, size_t *restrict n, int delim, FI
|
|||||||
Dl_info info;
|
Dl_info info;
|
||||||
if (!dladdr(ret_addr, &info) || !func_flags[func_idx_getdelim] || !lib_flags[lib_idx]) return __real_getdelim(lineptr, n, delim, stream);
|
if (!dladdr(ret_addr, &info) || !func_flags[func_idx_getdelim] || !lib_flags[lib_idx]) return __real_getdelim(lineptr, n, delim, stream);
|
||||||
char src_file[256];
|
char src_file[256];
|
||||||
msg("getdelim(%p:%p, %p:%li, %p)" ret_str, lineptr, lineptr != NULL ? lineptr : NULL, n, n != NULL ? *n : 0, stream, ret_data);
|
msg("getdelim(%p:%p, %p:%li, %p)" ret_str, lineptr, lineptr != NULL ? *lineptr : NULL, n, n != NULL ? *n : 0, stream, ret_data);
|
||||||
if (mode >= 4) {
|
if (mode >= 4) {
|
||||||
char msg_buf[BUFFER_SIZE];
|
char msg_buf[BUFFER_SIZE];
|
||||||
rcv(msg_buf, sizeof(msg_buf));
|
rcv(msg_buf, sizeof(msg_buf));
|
||||||
|
|||||||
Reference in New Issue
Block a user