code wiki / (root) / field-positive-narrow-t299.nx

field-positive-narrow-t299.nx source

↩ module page · 4 lines · 1034 B

1import "nx_syscalls.nx" 2struct Narrow{a:u8,b:u8,c:u8,d:u8,x:i32,y:i32,guard:i64} 3struct Holder{ptr:*Narrow} 4func main(argc:i64,argv:*i64)->i64{let s:*Narrow=sys_mmap_try(__size_of(Narrow)) as *Narrow;let h:*Holder=sys_mmap_try(__size_of(Holder)) as *Holder;if (s as i64)<=0{return 90};if (h as i64)<=0{return 91};h.ptr=s;s.guard=123456789;s.y=7654321 as i32;s.x=42 as i32;s.d=251 as u8;s.c=199 as u8;s.b=177 as u8;s.a=160 as u8;if (s.a as i64)!=160{return 1};if (s.b as i64)!=177{return 2};if (s.c as i64)!=199{return 3};if (s.d as i64)!=251{return 4};if (s.x as i64)!=42{return 5};if (s.y as i64)!=7654321{return 6};if s.guard!=123456789{return 7};h.ptr[0].x=(0-1234567) as i32;if (s.x as i64)!=(0-1234567){return 8};if (s.y as i64)!=7654321{return 9};h.ptr.b=255 as u8;if (s.a as i64)!=160{return 10};if (s.b as i64)!=255{return 11};if (s.c as i64)!=199{return 12};if (s.d as i64)!=251{return 13};if s.guard!=123456789{return 14};sys_munmap_direct(h as *u8,__size_of(Holder));sys_munmap_direct(s as *u8,__size_of(Narrow));return 0}