From 3d188ef884d6147d579e59eb8f51332bb8959ad5 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Fri, 7 Nov 2025 04:02:40 +0900 Subject: std: separate seccomp constants This avoids inadvertently using PNRs as syscall numbers. Signed-off-by: Ophestra --- container/std/mksysnum_linux.pl | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) (limited to 'container/std/mksysnum_linux.pl') diff --git a/container/std/mksysnum_linux.pl b/container/std/mksysnum_linux.pl index 95a636d3..65689dd2 100755 --- a/container/std/mksysnum_linux.pl +++ b/container/std/mksysnum_linux.pl @@ -22,7 +22,7 @@ package std import . "syscall" -var syscallNum = map[string]int{ +var syscallNum = map[string]ScmpSyscall{ EOF my $offset = 0; @@ -37,16 +37,14 @@ sub fmt { } (my $name_upper = $name) =~ y/a-z/A-Z/; $num = $num + $offset; - if($num > $syscall_cutoff_arch{$uname_arch}){ # not wired in Go standard library - if($state < 0){ - print " \"$name\": SYS_$name_upper,\n"; - } - else{ - print " SYS_$name_upper = $num;\n"; - } + if($num > $syscall_cutoff_arch{$uname_arch} && $state == 0){ # not wired in Go standard library + print " SYS_$name_upper = $num\n"; } - elsif($state < 0){ - print " \"$name\": SYS_$name_upper,\n"; + elsif($state == -1){ + print " \"$name\": SNR_$name_upper,\n"; + } + elsif($state == 1){ + print " SNR_$name_upper ScmpSyscall = SYS_$name_upper\n"; } else{ return; @@ -81,10 +79,16 @@ while(){ } } -if($state < 0){ - $state = $state + 1; +if($state == -1){ print "}\n\nconst (\n"; - goto GENERATE; } +elsif($state == 0){ + print ")\n\nconst (\n"; +} +elsif($state == 1){ + print ")"; + exit; +} +++$state; +goto GENERATE; -print ")"; -- cgit v1.3.1