summaryrefslogtreecommitdiffhomepage
path: root/pkg/sentry/syscalls/linux
diff options
context:
space:
mode:
authorNicolas Lacasse <nlacasse@google.com>2019-04-29 14:03:04 -0700
committerShentubot <shentubot@google.com>2019-04-29 14:04:14 -0700
commitf4ce43e1f426148d99c28c1b0e5c43ddda17a8cb (patch)
treeef64d18350874742742599c8b059b333eb060920 /pkg/sentry/syscalls/linux
parent38e627644756400413fffe7222cdd5200dc4eccf (diff)
Allow and document bug ids in gVisor codebase.
PiperOrigin-RevId: 245818639 Change-Id: I03703ef0fb9b6675955637b9fe2776204c545789
Diffstat (limited to 'pkg/sentry/syscalls/linux')
-rw-r--r--pkg/sentry/syscalls/linux/error.go2
-rw-r--r--pkg/sentry/syscalls/linux/linux64.go60
-rw-r--r--pkg/sentry/syscalls/linux/sys_aio.go2
-rw-r--r--pkg/sentry/syscalls/linux/sys_file.go4
-rw-r--r--pkg/sentry/syscalls/linux/sys_mmap.go4
-rw-r--r--pkg/sentry/syscalls/linux/sys_read.go2
-rw-r--r--pkg/sentry/syscalls/linux/sys_socket.go4
-rw-r--r--pkg/sentry/syscalls/linux/sys_thread.go2
-rw-r--r--pkg/sentry/syscalls/linux/sys_write.go4
9 files changed, 42 insertions, 42 deletions
diff --git a/pkg/sentry/syscalls/linux/error.go b/pkg/sentry/syscalls/linux/error.go
index 8759e5e32..304a12dde 100644
--- a/pkg/sentry/syscalls/linux/error.go
+++ b/pkg/sentry/syscalls/linux/error.go
@@ -89,7 +89,7 @@ func handleIOError(t *kernel.Task, partialResult bool, err, intr error, op strin
// side is gone. The partial write is returned. EPIPE will be
// returned on the next call.
//
- // TODO: In some cases SIGPIPE should
+ // TODO(gvisor.dev/issue/161): In some cases SIGPIPE should
// also be sent to the application.
return nil
case syserror.ErrWouldBlock:
diff --git a/pkg/sentry/syscalls/linux/linux64.go b/pkg/sentry/syscalls/linux/linux64.go
index be793ca11..b9b4ccbd1 100644
--- a/pkg/sentry/syscalls/linux/linux64.go
+++ b/pkg/sentry/syscalls/linux/linux64.go
@@ -143,10 +143,10 @@ var AMD64 = &kernel.SyscallTable{
65: Semop,
66: Semctl,
67: Shmdt,
- // 68: @Syscall(Msgget), TODO
- // 69: @Syscall(Msgsnd), TODO
- // 70: @Syscall(Msgrcv), TODO
- // 71: @Syscall(Msgctl), TODO
+ // 68: @Syscall(Msgget), TODO(b/29354921)
+ // 69: @Syscall(Msgsnd), TODO(b/29354921)
+ // 70: @Syscall(Msgrcv), TODO(b/29354921)
+ // 71: @Syscall(Msgctl), TODO(b/29354921)
72: Fcntl,
73: Flock,
74: Fsync,
@@ -197,8 +197,8 @@ var AMD64 = &kernel.SyscallTable{
119: Setresgid,
120: Getresgid,
121: Getpgid,
- // 122: @Syscall(Setfsuid), TODO
- // 123: @Syscall(Setfsgid), TODO
+ // 122: @Syscall(Setfsuid), TODO(b/112851702)
+ // 123: @Syscall(Setfsgid), TODO(b/112851702)
124: Getsid,
125: Capget,
126: Capset,
@@ -217,7 +217,7 @@ var AMD64 = &kernel.SyscallTable{
136: syscalls.ErrorWithEvent(syscall.ENOSYS),
137: Statfs,
138: Fstatfs,
- // 139: @Syscall(Sysfs), TODO
+ // 139: @Syscall(Sysfs), TODO(gvisor.dev/issue/165)
140: Getpriority,
141: Setpriority,
// @Syscall(SchedSetparam, returns:EPERM or ENOSYS, note:Returns EPERM if the process does not have cap_sys_nice; ENOSYS otherwise)
@@ -291,7 +291,7 @@ var AMD64 = &kernel.SyscallTable{
// @Syscall(Security, note:Not implemented in Linux)
185: syscalls.Error(syscall.ENOSYS),
186: Gettid,
- 187: nil, // @Syscall(Readahead), TODO
+ 187: nil, // @Syscall(Readahead), TODO(b/29351341)
// @Syscall(Setxattr, returns:ENOTSUP, note:Requires filesystem support)
188: syscalls.ErrorWithEvent(syscall.ENOTSUP),
// @Syscall(Lsetxattr, returns:ENOTSUP, note:Requires filesystem support)
@@ -342,7 +342,7 @@ var AMD64 = &kernel.SyscallTable{
217: Getdents64,
218: SetTidAddress,
219: RestartSyscall,
- // 220: @Syscall(Semtimedop), TODO
+ // 220: @Syscall(Semtimedop), TODO(b/29354920)
221: Fadvise64,
222: TimerCreate,
223: TimerSettime,
@@ -360,16 +360,16 @@ var AMD64 = &kernel.SyscallTable{
235: Utimes,
// @Syscall(Vserver, note:Not implemented by Linux)
236: syscalls.Error(syscall.ENOSYS), // Vserver, not implemented by Linux
- // @Syscall(Mbind, returns:EPERM or ENOSYS, note:Returns EPERM if the process does not have cap_sys_nice; ENOSYS otherwise), TODO
+ // @Syscall(Mbind, returns:EPERM or ENOSYS, note:Returns EPERM if the process does not have cap_sys_nice; ENOSYS otherwise), TODO(b/117792295)
237: syscalls.CapError(linux.CAP_SYS_NICE), // may require cap_sys_nice
238: SetMempolicy,
239: GetMempolicy,
- // 240: @Syscall(MqOpen), TODO
- // 241: @Syscall(MqUnlink), TODO
- // 242: @Syscall(MqTimedsend), TODO
- // 243: @Syscall(MqTimedreceive), TODO
- // 244: @Syscall(MqNotify), TODO
- // 245: @Syscall(MqGetsetattr), TODO
+ // 240: @Syscall(MqOpen), TODO(b/29354921)
+ // 241: @Syscall(MqUnlink), TODO(b/29354921)
+ // 242: @Syscall(MqTimedsend), TODO(b/29354921)
+ // 243: @Syscall(MqTimedreceive), TODO(b/29354921)
+ // 244: @Syscall(MqNotify), TODO(b/29354921)
+ // 245: @Syscall(MqGetsetattr), TODO(b/29354921)
246: syscalls.CapError(linux.CAP_SYS_BOOT), // kexec_load, requires cap_sys_boot
247: Waitid,
// @Syscall(AddKey, returns:EACCES, note:Not available to user)
@@ -407,22 +407,22 @@ var AMD64 = &kernel.SyscallTable{
273: syscalls.Error(syscall.ENOSYS),
// @Syscall(GetRobustList, note:Obsolete)
274: syscalls.Error(syscall.ENOSYS),
- // 275: @Syscall(Splice), TODO
- // 276: @Syscall(Tee), TODO
+ // 275: @Syscall(Splice), TODO(b/29354098)
+ // 276: @Syscall(Tee), TODO(b/29354098)
277: SyncFileRange,
- // 278: @Syscall(Vmsplice), TODO
+ // 278: @Syscall(Vmsplice), TODO(b/29354098)
// @Syscall(MovePages, returns:EPERM or ENOSYS, note:Returns EPERM if the process does not have cap_sys_nice; ENOSYS otherwise)
279: syscalls.CapError(linux.CAP_SYS_NICE), // requires cap_sys_nice (mostly)
280: Utimensat,
281: EpollPwait,
- // 282: @Syscall(Signalfd), TODO
+ // 282: @Syscall(Signalfd), TODO(b/19846426)
283: TimerfdCreate,
284: Eventfd,
285: Fallocate,
286: TimerfdSettime,
287: TimerfdGettime,
288: Accept4,
- // 289: @Syscall(Signalfd4), TODO
+ // 289: @Syscall(Signalfd4), TODO(b/19846426)
290: Eventfd2,
291: EpollCreate1,
292: Dup3,
@@ -447,17 +447,17 @@ var AMD64 = &kernel.SyscallTable{
305: syscalls.CapError(linux.CAP_SYS_TIME), // requires cap_sys_time
306: Syncfs,
307: SendMMsg,
- // 308: @Syscall(Setns), TODO
+ // 308: @Syscall(Setns), TODO(b/29354995)
309: Getcpu,
- // 310: @Syscall(ProcessVmReadv), TODO may require cap_sys_ptrace
- // 311: @Syscall(ProcessVmWritev), TODO may require cap_sys_ptrace
+ // 310: @Syscall(ProcessVmReadv), TODO(gvisor.dev/issue/158) may require cap_sys_ptrace
+ // 311: @Syscall(ProcessVmWritev), TODO(gvisor.dev/issue/158) may require cap_sys_ptrace
// @Syscall(Kcmp, returns:EPERM or ENOSYS, note:Requires cap_sys_ptrace)
312: syscalls.CapError(linux.CAP_SYS_PTRACE),
// @Syscall(FinitModule, returns:EPERM or ENOSYS, note:Returns EPERM if the process does not have cap_sys_module; ENOSYS otherwise)
313: syscalls.CapError(linux.CAP_SYS_MODULE),
- // 314: @Syscall(SchedSetattr), TODO, we have no scheduler
- // 315: @Syscall(SchedGetattr), TODO, we have no scheduler
- // 316: @Syscall(Renameat2), TODO
+ // 314: @Syscall(SchedSetattr), TODO(b/118902272), we have no scheduler
+ // 315: @Syscall(SchedGetattr), TODO(b/118902272), we have no scheduler
+ // 316: @Syscall(Renameat2), TODO(b/118902772)
317: Seccomp,
318: GetRandom,
319: MemfdCreate,
@@ -465,9 +465,9 @@ var AMD64 = &kernel.SyscallTable{
320: syscalls.CapError(linux.CAP_SYS_BOOT),
// @Syscall(Bpf, returns:EPERM or ENOSYS, note:Returns EPERM if the process does not have cap_sys_boot; ENOSYS otherwise)
321: syscalls.CapError(linux.CAP_SYS_ADMIN), // requires cap_sys_admin for all commands
- // 322: @Syscall(Execveat), TODO
- // 323: @Syscall(Userfaultfd), TODO
- // 324: @Syscall(Membarrier), TODO
+ // 322: @Syscall(Execveat), TODO(b/118901836)
+ // 323: @Syscall(Userfaultfd), TODO(b/118906345)
+ // 324: @Syscall(Membarrier), TODO(b/118904897)
325: Mlock2,
// Syscalls after 325 are "backports" from versions of Linux after 4.4.
// 326: @Syscall(CopyFileRange),
diff --git a/pkg/sentry/syscalls/linux/sys_aio.go b/pkg/sentry/syscalls/linux/sys_aio.go
index 355071131..61c2647bf 100644
--- a/pkg/sentry/syscalls/linux/sys_aio.go
+++ b/pkg/sentry/syscalls/linux/sys_aio.go
@@ -120,7 +120,7 @@ func IoDestroy(t *kernel.Task, args arch.SyscallArguments) (uintptr, *kernel.Sys
// Does not exist.
return 0, nil, syserror.EINVAL
}
- // FIXME: Linux blocks until all AIO to the destroyed context is
+ // FIXME(fvoznika): Linux blocks until all AIO to the destroyed context is
// done.
return 0, nil, nil
}
diff --git a/pkg/sentry/syscalls/linux/sys_file.go b/pkg/sentry/syscalls/linux/sys_file.go
index 50151f7b6..967464c85 100644
--- a/pkg/sentry/syscalls/linux/sys_file.go
+++ b/pkg/sentry/syscalls/linux/sys_file.go
@@ -259,7 +259,7 @@ func mknodAt(t *kernel.Task, dirFD kdefs.FD, addr usermem.Addr, mode linux.FileM
case linux.ModeCharacterDevice:
fallthrough
case linux.ModeBlockDevice:
- // TODO: We don't support creating block or character
+ // TODO(b/72101894): We don't support creating block or character
// devices at the moment.
//
// When we start supporting block and character devices, we'll
@@ -1532,7 +1532,7 @@ func chown(t *kernel.Task, d *fs.Dirent, uid auth.UID, gid auth.GID) error {
owner.GID = kgid
}
- // FIXME: This is racy; the inode's owner may have changed in
+ // FIXME(b/62949101): This is racy; the inode's owner may have changed in
// the meantime. (Linux holds i_mutex while calling
// fs/attr.c:notify_change() => inode_operations::setattr =>
// inode_change_ok().)
diff --git a/pkg/sentry/syscalls/linux/sys_mmap.go b/pkg/sentry/syscalls/linux/sys_mmap.go
index 8732861e0..805b251b1 100644
--- a/pkg/sentry/syscalls/linux/sys_mmap.go
+++ b/pkg/sentry/syscalls/linux/sys_mmap.go
@@ -185,7 +185,7 @@ func Madvise(t *kernel.Task, args arch.SyscallArguments) (uintptr, *kernel.Sysca
case linux.MADV_MERGEABLE, linux.MADV_UNMERGEABLE:
fallthrough
case linux.MADV_DONTDUMP, linux.MADV_DODUMP:
- // TODO: Core dumping isn't implemented, so these are
+ // TODO(b/72045799): Core dumping isn't implemented, so these are
// no-ops.
fallthrough
case linux.MADV_NORMAL, linux.MADV_RANDOM, linux.MADV_SEQUENTIAL, linux.MADV_WILLNEED:
@@ -223,7 +223,7 @@ func GetMempolicy(t *kernel.Task, args arch.SyscallArguments) (uintptr, *kernel.
nodeFlag := flags&linux.MPOL_F_NODE != 0
addrFlag := flags&linux.MPOL_F_ADDR != 0
- // TODO: Once sysfs is implemented, report a single numa node in
+ // TODO(rahat): Once sysfs is implemented, report a single numa node in
// /sys/devices/system/node.
if nodemask != 0 && maxnode < 1 {
return 0, nil, syserror.EINVAL
diff --git a/pkg/sentry/syscalls/linux/sys_read.go b/pkg/sentry/syscalls/linux/sys_read.go
index 8105e9b43..50c7d7a74 100644
--- a/pkg/sentry/syscalls/linux/sys_read.go
+++ b/pkg/sentry/syscalls/linux/sys_read.go
@@ -192,7 +192,7 @@ func Preadv(t *kernel.Task, args arch.SyscallArguments) (uintptr, *kernel.Syscal
}
// Preadv2 implements linux syscall preadv2(2).
-// TODO: Implement RWF_HIPRI functionality.
+// TODO(b/120162627): Implement RWF_HIPRI functionality.
func Preadv2(t *kernel.Task, args arch.SyscallArguments) (uintptr, *kernel.SyscallControl, error) {
// While the syscall is
// preadv2(int fd, struct iovec* iov, int iov_cnt, off_t offset, int flags)
diff --git a/pkg/sentry/syscalls/linux/sys_socket.go b/pkg/sentry/syscalls/linux/sys_socket.go
index 30ccc3f66..c8748958a 100644
--- a/pkg/sentry/syscalls/linux/sys_socket.go
+++ b/pkg/sentry/syscalls/linux/sys_socket.go
@@ -317,7 +317,7 @@ func accept(t *kernel.Task, fd kdefs.FD, addr usermem.Addr, addrLen usermem.Addr
return 0, syserror.ConvertIntr(e.ToError(), kernel.ERESTARTSYS)
}
if peerRequested {
- // NOTE: Linux does not give you an error if it can't
+ // NOTE(magi): Linux does not give you an error if it can't
// write the data back out so neither do we.
if err := writeAddress(t, peer, peerLen, addr, addrLen); err == syscall.EINVAL {
return 0, err
@@ -735,7 +735,7 @@ func recvSingleMsg(t *kernel.Task, s socket.Socket, msgPtr usermem.Addr, flags i
return 0, err
}
- // FIXME: Pretend we have an empty error queue.
+ // FIXME(b/63594852): Pretend we have an empty error queue.
if flags&linux.MSG_ERRQUEUE != 0 {
return 0, syscall.EAGAIN
}
diff --git a/pkg/sentry/syscalls/linux/sys_thread.go b/pkg/sentry/syscalls/linux/sys_thread.go
index 61cafefb9..ddcb5b789 100644
--- a/pkg/sentry/syscalls/linux/sys_thread.go
+++ b/pkg/sentry/syscalls/linux/sys_thread.go
@@ -350,7 +350,7 @@ func Waitid(t *kernel.Task, args arch.SyscallArguments) (uintptr, *kernel.Syscal
}
si.SetPid(int32(wr.TID))
si.SetUid(int32(wr.UID))
- // TODO: convert kernel.ExitStatus to functions and make
+ // TODO(b/73541790): convert kernel.ExitStatus to functions and make
// WaitResult.Status a linux.WaitStatus
s := syscall.WaitStatus(wr.Status)
switch {
diff --git a/pkg/sentry/syscalls/linux/sys_write.go b/pkg/sentry/syscalls/linux/sys_write.go
index a5ad7efb2..e405608c4 100644
--- a/pkg/sentry/syscalls/linux/sys_write.go
+++ b/pkg/sentry/syscalls/linux/sys_write.go
@@ -192,8 +192,8 @@ func Pwritev(t *kernel.Task, args arch.SyscallArguments) (uintptr, *kernel.Sysca
}
// Pwritev2 implements linux syscall pwritev2(2).
-// TODO: Implement RWF_HIPRI functionality.
-// TODO: Implement O_SYNC and D_SYNC functionality.
+// TODO(b/120162627): Implement RWF_HIPRI functionality.
+// TODO(b/120161091): Implement O_SYNC and D_SYNC functionality.
func Pwritev2(t *kernel.Task, args arch.SyscallArguments) (uintptr, *kernel.SyscallControl, error) {
// While the syscall is
// pwritev2(int fd, struct iovec* iov, int iov_cnt, off_t offset, int flags)