fixed openssl open syscall, fixed sandbox_getaddrinfo

This commit is contained in:
Cristian Toader 2013-08-20 13:10:07 +03:00
parent 36aeca0ecf
commit 71612f00ae

View File

@ -264,13 +264,13 @@ sb_open(scmp_filter_ctx ctx, sandbox_cfg_t *filter)
} }
// problem: required by getaddrinfo // problem: required by getaddrinfo
// rc = seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(open), 1, rc = seccomp_rule_add(ctx, SCMP_ACT_ERRNO(1), SCMP_SYS(open), 1,
// SCMP_CMP(1, SCMP_CMP_EQ, O_RDONLY|O_CLOEXEC)); SCMP_CMP(1, SCMP_CMP_EQ, O_RDONLY|O_CLOEXEC));
// if (rc != 0) { if (rc != 0) {
// log_err(LD_BUG,"(Sandbox) failed to add open syscall, received libseccomp " log_err(LD_BUG,"(Sandbox) failed to add open syscall, received libseccomp "
// "error %d", rc); "error %d", rc);
// return rc; return rc;
// } }
return 0; return 0;
} }
@ -872,6 +872,10 @@ int sandbox_getaddrinfo(const char *name, struct addrinfo **res)
return -2; return -2;
} }
*res = NULL; *res = NULL;
*res = (struct addrinfo *) malloc (sizeof(struct addrinfo));
if (!res) {
return -2;
}
if (gethostname(hname, sizeof(hname)) < 0) { if (gethostname(hname, sizeof(hname)) < 0) {
return -1; return -1;
@ -882,7 +886,7 @@ int sandbox_getaddrinfo(const char *name, struct addrinfo **res)
return -1; return -1;
} }
*res = sb_addr_info; memcpy(*res, sb_addr_info, sizeof(struct addrinfo));
return 0; return 0;
} }