1
0

proj: Allow exclutions of functions

This commit is contained in:
2025-04-14 23:51:09 +02:00
parent cd8384f4fb
commit 83ddd409a4
3 changed files with 15 additions and 3 deletions

View File

@@ -829,12 +829,22 @@ static void init(void) {
for (int i = 0; func_names[i] != NULL; i++) {
const char *name1 = func_names[i];
const int wildcard = name1[strlen(name1) - 1] == '*';
int not = 0;
if (name1[0] == '-') {
name1++;
not = 1;
}
for (int j = 0; j < sizeof(func_names_ordered) / sizeof(char *); j++) {
const char *name2 = func_names_ordered[j];
if (strcmp(name1, name2) == 0 || (wildcard && strncmp(name1, name2, strlen(name1) - 1) == 0))
if (strcmp(name1, name2) == 0 || (wildcard && strncmp(name1, name2, strlen(name1) - 1) == 0)) {
if (not) {
func_flags[j] &= ~1;
} else {
func_flags[j] |= 1;
}
}
}
}
} else {
memset(func_flags, 1, sizeof(func_flags));
}
@@ -1158,7 +1168,7 @@ int sym(sigaction)(int sig, const struct sigaction *restrict act, struct sigacti
if (maskstr[0] != 0) strcat(maskstr, ",");
strcat(maskstr, getsigstr(i));
}
msg("return %i; errno %s; oact={sa_flags: 0x%x:%s, %s: %p, sa-mask: [%s]}", ret, strerrorname_np(errno), oact->sa_flags, flgstr, name, ptr, maskstr);
msg("return %i; errno %s; oact={sa_flags: 0x%x:%s, %s: %p, sa_mask: [%s]}", ret, strerrorname_np(errno), oact->sa_flags, flgstr, name, ptr, maskstr);
} else {
msg("return %i; errno %s", ret, strerrorname_np(errno));
}

View File

@@ -24,6 +24,7 @@ def main() -> None:
subprocess.run(extra, env={
'LD_PRELOAD': os.getcwd() + '/../../intercept/intercept.so',
'INTERCEPT': 'unix:' + socket_name,
'INTERCEPT_FUNCTIONS': ','.join(['*', '-malloc', '-calloc', '-realloc', '-reallocarray', '-free']),
})

View File

@@ -35,6 +35,7 @@ def main() -> None:
subprocess.run(extra, stdin=stdin, env={
'LD_PRELOAD': os.getcwd() + '/../../intercept/intercept.so',
'INTERCEPT': 'unix:' + socket_name,
'INTERCEPT_FUNCTIONS': ','.join(['*', '-malloc', '-calloc', '-realloc', '-reallocarray', '-free']),
})
for i, name in enumerate(ctx['call_sequence']):
errors = [r[1] for r in ctx['results'] if r[0] == i]