Fix line lengths in renamed seccomp file
This commit is contained in:
parent
f7d43132b2
commit
9e5cedae23
|
@ -216,7 +216,6 @@
|
||||||
<suppress files="core[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]bootstrap[/\\]JNANatives.java" checks="LineLength" />
|
<suppress files="core[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]bootstrap[/\\]JNANatives.java" checks="LineLength" />
|
||||||
<suppress files="core[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]bootstrap[/\\]JVMCheck.java" checks="LineLength" />
|
<suppress files="core[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]bootstrap[/\\]JVMCheck.java" checks="LineLength" />
|
||||||
<suppress files="core[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]bootstrap[/\\]JarHell.java" checks="LineLength" />
|
<suppress files="core[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]bootstrap[/\\]JarHell.java" checks="LineLength" />
|
||||||
<suppress files="core[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]bootstrap[/\\]Seccomp.java" checks="LineLength" />
|
|
||||||
<suppress files="core[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]bootstrap[/\\]Security.java" checks="LineLength" />
|
<suppress files="core[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]bootstrap[/\\]Security.java" checks="LineLength" />
|
||||||
<suppress files="core[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]client[/\\]ElasticsearchClient.java" checks="LineLength" />
|
<suppress files="core[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]client[/\\]ElasticsearchClient.java" checks="LineLength" />
|
||||||
<suppress files="core[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]client[/\\]FilterClient.java" checks="LineLength" />
|
<suppress files="core[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]client[/\\]FilterClient.java" checks="LineLength" />
|
||||||
|
|
|
@ -268,7 +268,8 @@ final class SystemCallFilter {
|
||||||
|
|
||||||
// we couldn't link methods, could be some really ancient kernel (e.g. < 2.1.57) or some bug
|
// we couldn't link methods, could be some really ancient kernel (e.g. < 2.1.57) or some bug
|
||||||
if (linux_libc == null) {
|
if (linux_libc == null) {
|
||||||
throw new UnsupportedOperationException("seccomp unavailable: could not link methods. requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER compiled in");
|
throw new UnsupportedOperationException("seccomp unavailable: could not link methods. requires kernel 3.5+ " +
|
||||||
|
"with CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER compiled in");
|
||||||
}
|
}
|
||||||
|
|
||||||
// pure paranoia:
|
// pure paranoia:
|
||||||
|
@ -318,7 +319,8 @@ final class SystemCallFilter {
|
||||||
switch (errno) {
|
switch (errno) {
|
||||||
case ENOSYS: break; // ok
|
case ENOSYS: break; // ok
|
||||||
case EINVAL: break; // ok
|
case EINVAL: break; // ok
|
||||||
default: throw new UnsupportedOperationException("seccomp(SECCOMP_SET_MODE_FILTER, BOGUS_FLAG): " + JNACLibrary.strerror(errno));
|
default: throw new UnsupportedOperationException("seccomp(SECCOMP_SET_MODE_FILTER, BOGUS_FLAG): "
|
||||||
|
+ JNACLibrary.strerror(errno));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -345,7 +347,8 @@ final class SystemCallFilter {
|
||||||
int errno = Native.getLastError();
|
int errno = Native.getLastError();
|
||||||
if (errno == EINVAL) {
|
if (errno == EINVAL) {
|
||||||
// friendly error, this will be the typical case for an old kernel
|
// friendly error, this will be the typical case for an old kernel
|
||||||
throw new UnsupportedOperationException("seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER compiled in");
|
throw new UnsupportedOperationException("seccomp unavailable: requires kernel 3.5+ with" +
|
||||||
|
" CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER compiled in");
|
||||||
} else {
|
} else {
|
||||||
throw new UnsupportedOperationException("prctl(PR_GET_NO_NEW_PRIVS): " + JNACLibrary.strerror(errno));
|
throw new UnsupportedOperationException("prctl(PR_GET_NO_NEW_PRIVS): " + JNACLibrary.strerror(errno));
|
||||||
}
|
}
|
||||||
|
@ -357,7 +360,8 @@ final class SystemCallFilter {
|
||||||
default:
|
default:
|
||||||
int errno = Native.getLastError();
|
int errno = Native.getLastError();
|
||||||
if (errno == EINVAL) {
|
if (errno == EINVAL) {
|
||||||
throw new UnsupportedOperationException("seccomp unavailable: CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed");
|
throw new UnsupportedOperationException("seccomp unavailable: CONFIG_SECCOMP not compiled into kernel," +
|
||||||
|
" CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed");
|
||||||
} else {
|
} else {
|
||||||
throw new UnsupportedOperationException("prctl(PR_GET_SECCOMP): " + JNACLibrary.strerror(errno));
|
throw new UnsupportedOperationException("prctl(PR_GET_SECCOMP): " + JNACLibrary.strerror(errno));
|
||||||
}
|
}
|
||||||
|
@ -367,7 +371,8 @@ final class SystemCallFilter {
|
||||||
int errno = Native.getLastError();
|
int errno = Native.getLastError();
|
||||||
switch (errno) {
|
switch (errno) {
|
||||||
case EFAULT: break; // available
|
case EFAULT: break; // available
|
||||||
case EINVAL: throw new UnsupportedOperationException("seccomp unavailable: CONFIG_SECCOMP_FILTER not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed");
|
case EINVAL: throw new UnsupportedOperationException("seccomp unavailable: CONFIG_SECCOMP_FILTER not" +
|
||||||
|
" compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed");
|
||||||
default: throw new UnsupportedOperationException("prctl(PR_SET_SECCOMP): " + JNACLibrary.strerror(errno));
|
default: throw new UnsupportedOperationException("prctl(PR_SET_SECCOMP): " + JNACLibrary.strerror(errno));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -379,10 +384,12 @@ final class SystemCallFilter {
|
||||||
|
|
||||||
// check it worked
|
// check it worked
|
||||||
if (linux_prctl(PR_GET_NO_NEW_PRIVS, 0, 0, 0, 0) != 1) {
|
if (linux_prctl(PR_GET_NO_NEW_PRIVS, 0, 0, 0, 0) != 1) {
|
||||||
throw new UnsupportedOperationException("seccomp filter did not really succeed: prctl(PR_GET_NO_NEW_PRIVS): " + JNACLibrary.strerror(Native.getLastError()));
|
throw new UnsupportedOperationException("seccomp filter did not really succeed: prctl(PR_GET_NO_NEW_PRIVS): " +
|
||||||
|
JNACLibrary.strerror(Native.getLastError()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// BPF installed to check arch, limit, then syscall. See https://www.kernel.org/doc/Documentation/prctl/seccomp_filter.txt for details.
|
// BPF installed to check arch, limit, then syscall.
|
||||||
|
// See https://www.kernel.org/doc/Documentation/prctl/seccomp_filter.txt for details.
|
||||||
SockFilter insns[] = {
|
SockFilter insns[] = {
|
||||||
/* 1 */ BPF_STMT(BPF_LD + BPF_W + BPF_ABS, SECCOMP_DATA_ARCH_OFFSET), //
|
/* 1 */ BPF_STMT(BPF_LD + BPF_W + BPF_ABS, SECCOMP_DATA_ARCH_OFFSET), //
|
||||||
/* 2 */ BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, arch.audit, 0, 7), // if (arch != audit) goto fail;
|
/* 2 */ BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, arch.audit, 0, 7), // if (arch != audit) goto fail;
|
||||||
|
@ -407,7 +414,8 @@ final class SystemCallFilter {
|
||||||
method = 0;
|
method = 0;
|
||||||
int errno1 = Native.getLastError();
|
int errno1 = Native.getLastError();
|
||||||
if (logger.isDebugEnabled()) {
|
if (logger.isDebugEnabled()) {
|
||||||
logger.debug("seccomp(SECCOMP_SET_MODE_FILTER): {}, falling back to prctl(PR_SET_SECCOMP)...", JNACLibrary.strerror(errno1));
|
logger.debug("seccomp(SECCOMP_SET_MODE_FILTER): {}, falling back to prctl(PR_SET_SECCOMP)...",
|
||||||
|
JNACLibrary.strerror(errno1));
|
||||||
}
|
}
|
||||||
if (linux_prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, pointer, 0, 0) != 0) {
|
if (linux_prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, pointer, 0, 0) != 0) {
|
||||||
int errno2 = Native.getLastError();
|
int errno2 = Native.getLastError();
|
||||||
|
@ -418,7 +426,8 @@ final class SystemCallFilter {
|
||||||
|
|
||||||
// now check that the filter was really installed, we should be in filter mode.
|
// now check that the filter was really installed, we should be in filter mode.
|
||||||
if (linux_prctl(PR_GET_SECCOMP, 0, 0, 0, 0) != 2) {
|
if (linux_prctl(PR_GET_SECCOMP, 0, 0, 0, 0) != 2) {
|
||||||
throw new UnsupportedOperationException("seccomp filter installation did not really succeed. seccomp(PR_GET_SECCOMP): " + JNACLibrary.strerror(Native.getLastError()));
|
throw new UnsupportedOperationException("seccomp filter installation did not really succeed. seccomp(PR_GET_SECCOMP): "
|
||||||
|
+ JNACLibrary.strerror(Native.getLastError()));
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.debug("Linux seccomp filter installation successful, threads: [{}]", method == 1 ? "all" : "app" );
|
logger.debug("Linux seccomp filter installation successful, threads: [{}]", method == 1 ? "all" : "app" );
|
||||||
|
|
Loading…
Reference in New Issue