code wiki / (root) / nx_x86_open_diag2_test.nx

nx_x86_open_diag2_test.nx source

↩ module page · 29 lines · 709 B

1// nx_x86_open_diag2_test.nx -- try /etc/passwd to check path encoding. 2 3import "nx_syscalls.nx" 4import "nx_tier.nx" 5 6func main() -> i64 { 7 let path: *u8 = sys_mmap(32) 8 path[0]=0x2F as u8 // / 9 path[1]=0x65 as u8 // e 10 path[2]=0x74 as u8 // t 11 path[3]=0x63 as u8 // c 12 path[4]=0x2F as u8 // / 13 path[5]=0x70 as u8 // p 14 path[6]=0x61 as u8 // a 15 path[7]=0x73 as u8 // s 16 path[8]=0x73 as u8 // s 17 path[9]=0x77 as u8 // w 18 path[10]=0x64 as u8 // d 19 path[11]=0 as u8 20 21 let fd: i64 = sys_openat_rd(path) 22 if fd < 0 { 23 let err: i64 = 0 - fd 24 if err > 250 { return 250 } 25 return err as i64 26 } 27 sys_close(fd) 28 return 0 29}