code wiki / (root) / nx_contentdiff_sectionless_gate_t314.nx

nx_contentdiff_sectionless_gate_t314.nx source

↩ module page · 32 lines · 2101 B

1import "_hdl_build/nx_contentdiff_lib.nx" 2import "nx_gate_verdict.nx" 3func cs314_reset(dst:*u8,src:*u8,n:i64)->i64{var i:i64=0;while i<n{dst[i]=src[i];i=i+1};return 0} 4func main()->i64{ 5 let checks:*i64=gv_ctr() 6 var n:i64=0 7 let source:*u8=sys_map_file("/volume1/homes/elderwesto/nishihost/buildroot/_build/nx_behavior_fixture_a_t297.sov.elf",&n) 8 if (source as i64)<=0{return 2} 9 let copy:*u8=sys_mmap_try(n);if (copy as i64)<=0{sys_munmap_direct(source,n);return 2} 10 cs314_reset(copy,source,n) 11 var c:NxCdStructured;c.buf=copy;c.bytes=n 12 gv_check("actual native release has no section table",nx_elf_get_u64_le(copy,40)==0&&nx_elf_get_u16_le(copy,60)==0,checks) 13 gv_check("actual native release program extents validate",cds_sectionless(&c)==0,checks) 14 c.bytes=119 15 gv_check("truncated program table refuses",cds_sectionless(&c)==CDS_INVALID,checks);c.bytes=n 16 copy[40]=64 as u8 17 gv_check("extended section count remains explicit unsupported",cds_sectionless(&c)==CDS_UNKNOWN,checks);cs314_reset(copy,source,n) 18 copy[62]=1 as u8 19 gv_check("section name index without sections refuses",cds_sectionless(&c)==CDS_INVALID,checks);cs314_reset(copy,source,n) 20 copy[54]=55 as u8 21 gv_check("unknown program entry layout refuses",cds_sectionless(&c)==CDS_UNKNOWN,checks);cs314_reset(copy,source,n) 22 copy[56]=255 as u8;copy[57]=255 as u8 23 gv_check("extended program count not mistaken for no sections",cds_sectionless(&c)==CDS_UNKNOWN,checks);cs314_reset(copy,source,n) 24 copy[32]=1 as u8 25 gv_check("program table overlapping header refuses",cds_sectionless(&c)==CDS_INVALID,checks);cs314_reset(copy,source,n) 26 var i:i64=104;while i<112{copy[i]=0 as u8;i=i+1} 27 gv_check("load segment file bytes cannot exceed memory bytes",cds_sectionless(&c)==CDS_INVALID,checks);cs314_reset(copy,source,n) 28 copy[96]=255 as u8;copy[97]=255 as u8 29 gv_check("segment extending beyond artifact refuses",cds_sectionless(&c)==CDS_INVALID,checks) 30 sys_munmap_direct(copy,n);sys_munmap_direct(source,n) 31 return gv_verdict("SECTIONLESS-ELF",checks,"Actual native release plus malformed derivatives; no loader or behavior approval") 32}