mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 06:13:31 +01:00
fixed openssl open syscall, fixed sandbox_getaddrinfo
This commit is contained in:
parent
36aeca0ecf
commit
71612f00ae
@ -264,13 +264,13 @@ sb_open(scmp_filter_ctx ctx, sandbox_cfg_t *filter)
|
||||
}
|
||||
|
||||
// problem: required by getaddrinfo
|
||||
// rc = seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(open), 1,
|
||||
// SCMP_CMP(1, SCMP_CMP_EQ, O_RDONLY|O_CLOEXEC));
|
||||
// if (rc != 0) {
|
||||
// log_err(LD_BUG,"(Sandbox) failed to add open syscall, received libseccomp "
|
||||
// "error %d", rc);
|
||||
// return rc;
|
||||
// }
|
||||
rc = seccomp_rule_add(ctx, SCMP_ACT_ERRNO(1), SCMP_SYS(open), 1,
|
||||
SCMP_CMP(1, SCMP_CMP_EQ, O_RDONLY|O_CLOEXEC));
|
||||
if (rc != 0) {
|
||||
log_err(LD_BUG,"(Sandbox) failed to add open syscall, received libseccomp "
|
||||
"error %d", rc);
|
||||
return rc;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -872,6 +872,10 @@ int sandbox_getaddrinfo(const char *name, struct addrinfo **res)
|
||||
return -2;
|
||||
}
|
||||
*res = NULL;
|
||||
*res = (struct addrinfo *) malloc (sizeof(struct addrinfo));
|
||||
if (!res) {
|
||||
return -2;
|
||||
}
|
||||
|
||||
if (gethostname(hname, sizeof(hname)) < 0) {
|
||||
return -1;
|
||||
@ -882,7 +886,7 @@ int sandbox_getaddrinfo(const char *name, struct addrinfo **res)
|
||||
return -1;
|
||||
}
|
||||
|
||||
*res = sb_addr_info;
|
||||
memcpy(*res, sb_addr_info, sizeof(struct addrinfo));
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user