summaryrefslogtreecommitdiff
path: root/internal/generate
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-21 17:43:18 +0300
committerPaul Buetow <paul@buetow.org>2026-05-21 17:43:18 +0300
commit11394edddbb8f02208edb18e06ae40b6912742f4 (patch)
tree6008d4ae3551a24d8f412d4710dad78c6d650fd7 /internal/generate
parent8b38c88cc86adb9240473523c59d9b4a83f5437d (diff)
e7 classify acct pathname and misc null syscalls
Diffstat (limited to 'internal/generate')
-rw-r--r--internal/generate/classify.go42
-rw-r--r--internal/generate/classify_test.go55
2 files changed, 97 insertions, 0 deletions
diff --git a/internal/generate/classify.go b/internal/generate/classify.go
index e2b71f4..4ab63ad 100644
--- a/internal/generate/classify.go
+++ b/internal/generate/classify.go
@@ -480,6 +480,44 @@ func classifyNameOnly(name string) (ClassificationResult, bool) {
return ClassificationResult{Kind: KindNull}, true
case "sys_enter_kexec_load":
return ClassificationResult{Kind: KindNull}, true
+ case "sys_enter_sysinfo":
+ return ClassificationResult{Kind: KindNull}, true
+ case "sys_enter_sysfs":
+ return ClassificationResult{Kind: KindNull}, true
+ case "sys_enter_ustat":
+ return ClassificationResult{Kind: KindNull}, true
+ case "sys_enter_newuname":
+ return ClassificationResult{Kind: KindNull}, true
+ case "sys_enter_sethostname":
+ return ClassificationResult{Kind: KindNull}, true
+ case "sys_enter_setdomainname":
+ return ClassificationResult{Kind: KindNull}, true
+ case "sys_enter_capget":
+ return ClassificationResult{Kind: KindNull}, true
+ case "sys_enter_capset":
+ return ClassificationResult{Kind: KindNull}, true
+ case "sys_enter_personality":
+ return ClassificationResult{Kind: KindNull}, true
+ case "sys_enter_reboot":
+ return ClassificationResult{Kind: KindNull}, true
+ case "sys_enter_restart_syscall":
+ return ClassificationResult{Kind: KindNull}, true
+ case "sys_enter_vhangup":
+ return ClassificationResult{Kind: KindNull}, true
+ case "sys_enter_arch_prctl":
+ return ClassificationResult{Kind: KindNull}, true
+ case "sys_enter_ioperm":
+ return ClassificationResult{Kind: KindNull}, true
+ case "sys_enter_iopl":
+ return ClassificationResult{Kind: KindNull}, true
+ case "sys_enter_modify_ldt":
+ return ClassificationResult{Kind: KindNull}, true
+ case "sys_enter_lsm_get_self_attr":
+ return ClassificationResult{Kind: KindNull}, true
+ case "sys_enter_lsm_set_self_attr":
+ return ClassificationResult{Kind: KindNull}, true
+ case "sys_enter_lsm_list_modules":
+ return ClassificationResult{Kind: KindNull}, true
}
if strings.HasPrefix(name, "sys_enter_io_") {
return ClassificationResult{Kind: KindNull}, true
@@ -519,6 +557,10 @@ func classifyNameAndField(name, fieldType, fieldName string) (ClassificationResu
if isCStringPtrType(fieldType) && fieldName == "name" {
return ClassificationResult{Kind: KindPathname, PathnameField: "name"}, true
}
+ case "sys_enter_acct":
+ if isCStringPtrType(fieldType) && fieldName == "name" {
+ return ClassificationResult{Kind: KindPathname, PathnameField: "name"}, true
+ }
case "sys_enter_pivot_root":
if isCStringPtrType(fieldType) && fieldName == "new_root" {
return ClassificationResult{Kind: KindPathname, PathnameField: "new_root"}, true
diff --git a/internal/generate/classify_test.go b/internal/generate/classify_test.go
index 323db06..b35f1b1 100644
--- a/internal/generate/classify_test.go
+++ b/internal/generate/classify_test.go
@@ -867,6 +867,61 @@ func TestClassifyA7NameOnlyKinds(t *testing.T) {
}
}
+func TestClassifyE7NullNameOnlyKinds(t *testing.T) {
+ tests := []string{
+ "sys_enter_sysinfo",
+ "sys_enter_sysfs",
+ "sys_enter_ustat",
+ "sys_enter_newuname",
+ "sys_enter_sethostname",
+ "sys_enter_setdomainname",
+ "sys_enter_capget",
+ "sys_enter_capset",
+ "sys_enter_personality",
+ "sys_enter_reboot",
+ "sys_enter_restart_syscall",
+ "sys_enter_vhangup",
+ "sys_enter_arch_prctl",
+ "sys_enter_ioperm",
+ "sys_enter_iopl",
+ "sys_enter_modify_ldt",
+ "sys_enter_lsm_get_self_attr",
+ "sys_enter_lsm_set_self_attr",
+ "sys_enter_lsm_list_modules",
+ }
+
+ for _, name := range tests {
+ t.Run(name, func(t *testing.T) {
+ r := ClassifyFormat(&Format{
+ Name: name,
+ ExternalFields: []Field{
+ {Type: "long", Name: "__syscall_nr"},
+ {Type: "long", Name: "arg0"},
+ },
+ })
+ if r.Kind != KindNull {
+ t.Fatalf("%s: got kind %d, want KindNull", name, r.Kind)
+ }
+ })
+ }
+}
+
+func TestClassifyAcctPathname(t *testing.T) {
+ r := ClassifyFormat(&Format{
+ Name: "sys_enter_acct",
+ ExternalFields: []Field{
+ {Type: "long", Name: "__syscall_nr"},
+ {Type: "const char *", Name: "name"},
+ },
+ })
+ if r.Kind != KindPathname {
+ t.Fatalf("acct: got kind %d, want KindPathname", r.Kind)
+ }
+ if r.PathnameField != "name" {
+ t.Fatalf("acct: PathnameField=%q, want name", r.PathnameField)
+ }
+}
+
func TestClassifyMount(t *testing.T) {
r := classifyFromData(t, FormatMount)
if r.Kind != KindPathname {