aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--container/seccomp/std_test.go13
-rw-r--r--ext/ext.go7
2 files changed, 20 insertions, 0 deletions
diff --git a/container/seccomp/std_test.go b/container/seccomp/std_test.go
index 026fef8b..93b5613c 100644
--- a/container/seccomp/std_test.go
+++ b/container/seccomp/std_test.go
@@ -26,7 +26,9 @@ func TestSyscallResolveName(t *testing.T) {
func TestRuleType(t *testing.T) {
assertKind[ext.Uint, scmpUint](t)
+ assertOverflow(t, ext.Uint(ext.MaxUint))
assertKind[ext.Int, scmpInt](t)
+ assertOverflow(t, ext.Int(ext.MaxInt))
assertSize[std.NativeRule, syscallRule](t)
assertKind[std.ScmpDatum, scmpDatum](t)
@@ -62,3 +64,14 @@ func assertKind[native, equivalent any](t *testing.T) {
t.Fatalf("%s: %s, want %s", nativeType.Name(), nativeType.Kind(), equivalentType.Kind())
}
}
+
+// assertOverflow asserts that incrementing m overflows.
+func assertOverflow[T ~int32 | ~uint32](t *testing.T, m T) {
+ t.Helper()
+
+ old := m
+ m++
+ if m > old {
+ t.Fatalf("unexpected value %#x", m)
+ }
+}
diff --git a/ext/ext.go b/ext/ext.go
index 12fd2550..2667f8e4 100644
--- a/ext/ext.go
+++ b/ext/ext.go
@@ -4,6 +4,7 @@ package ext
import (
"encoding/json"
"iter"
+ "math"
"strconv"
)
@@ -15,6 +16,12 @@ type (
Int = int32
)
+// Integer limit values.
+const (
+ MaxUint = math.MaxUint32
+ MaxInt = math.MaxInt32
+)
+
// SyscallNum represents an architecture-specific, Linux syscall number.
type SyscallNum Int