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}