|
syscall: return EINVAL when string arguments have NUL characters
Since NUL usually terminates strings in underlying syscalls, allowing
it when converting string arguments is a security risk, especially
when dealing with filenames. For example, a program might reason that
filename like "/root/..\x00/" is a subdirectory or "/root/" and allow
access to it, while underlying syscall will treat "\x00" as an end of
that string and the actual filename will be "/root/..", which might
be unexpected. Returning EINVAL when string arguments have NUL in
them makes sure this attack vector is unusable.
Total comments: 2
Total comments: 1
Total comments: 2
Total comments: 9
Total comments: 1
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+2811 lines, -476 lines) |
Patch |
 |
M |
src/pkg/crypto/x509/root_windows.go
|
View
|
1
2
3
4
5
6
7
8
|
2 chunks |
+6 lines, -2 lines |
0 comments
|
Download
|
 |
M |
src/pkg/exp/winfsnotify/winfsnotify.go
|
View
|
1
2
3
4
5
|
2 chunks |
+10 lines, -2 lines |
0 comments
|
Download
|
 |
M |
src/pkg/mime/type_windows.go
|
View
|
1
2
3
4
5
|
2 chunks |
+6 lines, -3 lines |
0 comments
|
Download
|
 |
M |
src/pkg/os/error_test.go
|
View
|
1
2
3
4
5
6
7
8
9
|
1 chunk |
+24 lines, -0 lines |
0 comments
|
Download
|
 |
M |
src/pkg/os/file_windows.go
|
View
|
1
2
3
4
5
|
2 chunks |
+10 lines, -3 lines |
0 comments
|
Download
|
 |
M |
src/pkg/os/stat_windows.go
|
View
|
1
2
3
4
5
|
2 chunks |
+10 lines, -2 lines |
0 comments
|
Download
|
 |
M |
src/pkg/os/user/lookup_windows.go
|
View
|
1
2
3
4
5
|
1 chunk |
+9 lines, -3 lines |
0 comments
|
Download
|
 |
M |
src/pkg/path/filepath/symlink_windows.go
|
View
|
1
2
3
4
5
|
2 chunks |
+8 lines, -2 lines |
0 comments
|
Download
|
 |
M |
src/pkg/runtime/syscall_windows_test.go
|
View
|
1
2
3
4
5
6
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/dll_windows.go
|
View
|
1
2
3
4
5
|
2 chunks |
+10 lines, -2 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/env_windows.go
|
View
|
1
2
3
4
5
6
7
8
|
2 chunks |
+16 lines, -4 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/exec_plan9.go
|
View
|
1
2
3
4
5
6
7
8
9
10
|
5 chunks |
+50 lines, -8 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/exec_unix.go
|
View
|
1
2
3
4
5
6
7
8
9
10
|
5 chunks |
+54 lines, -10 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/exec_windows.go
|
View
|
1
2
3
4
5
|
3 chunks |
+16 lines, -4 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/mksyscall.pl
|
View
|
1
2
3
4
5
|
2 chunks |
+21 lines, -1 line |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/mksyscall_windows.pl
|
View
|
1
2
3
4
5
|
3 chunks |
+23 lines, -2 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/security_windows.go
|
View
|
1
2
3
4
5
|
4 chunks |
+23 lines, -7 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/syscall.go
|
View
|
1
2
3
4
5
6
7
8
9
|
1 chunk |
+35 lines, -6 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/syscall_darwin.go
|
View
|
1
2
3
4
5
|
1 chunk |
+4 lines, -1 line |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/syscall_freebsd.go
|
View
|
1
2
3
4
5
|
1 chunk |
+4 lines, -1 line |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/syscall_linux.go
|
View
|
1
2
3
4
5
|
2 chunks |
+10 lines, -2 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/syscall_linux_386.go
|
View
|
1
2
3
4
5
|
1 chunk |
+5 lines, -1 line |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/syscall_plan9.go
|
View
|
1
2
3
4
5
|
1 chunk |
+11 lines, -3 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/syscall_windows.go
|
View
|
1
2
3
4
5
6
7
8
9
10
|
7 chunks |
+78 lines, -14 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/syscall_windows_test.go
|
View
|
1
2
3
4
5
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/zsyscall_darwin_386.go
|
View
|
1
2
3
4
5
|
29 chunks |
+197 lines, -32 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/zsyscall_darwin_amd64.go
|
View
|
1
2
3
4
5
|
29 chunks |
+197 lines, -32 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/zsyscall_freebsd_386.go
|
View
|
1
2
3
4
5
|
28 chunks |
+186 lines, -31 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/zsyscall_freebsd_amd64.go
|
View
|
1
2
3
4
5
|
28 chunks |
+186 lines, -31 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/zsyscall_linux_386.go
|
View
|
1
2
3
4
5
|
35 chunks |
+248 lines, -38 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/zsyscall_linux_amd64.go
|
View
|
1
2
3
4
5
|
36 chunks |
+254 lines, -39 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/zsyscall_linux_arm.go
|
View
|
1
2
3
4
5
|
36 chunks |
+254 lines, -39 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/zsyscall_netbsd_386.go
|
View
|
1
2
3
4
5
|
25 chunks |
+168 lines, -28 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/zsyscall_netbsd_amd64.go
|
View
|
1
2
3
4
5
|
25 chunks |
+168 lines, -28 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/zsyscall_openbsd_386.go
|
View
|
1
2
3
4
5
|
27 chunks |
+180 lines, -30 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/zsyscall_openbsd_amd64.go
|
View
|
1
2
3
4
5
|
27 chunks |
+180 lines, -30 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/zsyscall_plan9_386.go
|
View
|
1
2
3
4
5
|
9 chunks |
+64 lines, -21 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/zsyscall_windows_386.go
|
View
|
1
2
3
4
5
|
6 chunks |
+41 lines, -6 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/zsyscall_windows_amd64.go
|
View
|
1
2
3
4
5
|
6 chunks |
+41 lines, -6 lines |
0 comments
|
Download
|
Total messages: 42
|