Files
zeekayandHanzo Dev 1fda956476 Set a call's files after its result, and check the magic
Reading a ZAP result writes every field its layout states, the file payload
included, so files attached before decoding were overwritten with none. A
frame whose header is not ZAP is refused at the magic rather than read as a
length.


Co-authored-by: Hanzo Dev <[email protected]>
2026-09-22 23:10:33 -07:00

118 lines
2.9 KiB
Python

load("//tools:defs.bzl", "go_library", "go_test", "proto_library")
package(
default_applicable_licenses = ["//:license"],
licenses = ["notice"],
)
proto_library(
name = "control_api",
srcs = ["control.proto"],
visibility = ["//visibility:public"],
deps = [
"@com_google_protobuf//:timestamp_proto",
],
)
proto_library(
name = "tpu_control_proto",
srcs = ["tpu_control.proto"],
visibility = ["//visibility:public"],
)
go_library(
name = "control",
srcs = [
"cgroups.go",
"control.go",
"events.go",
"fs.go",
"lifecycle.go",
"logging.go",
"metrics.go",
"pprof.go",
"proc.go",
"state.go",
"state_cuda.go",
"tpu_control.go",
"usage.go",
"zap.go",
],
visibility = [
"//:sandbox",
],
deps = [
"//pkg/abi/linux",
"//pkg/bpf",
"//pkg/cleanup",
"//pkg/context",
"//pkg/errors/linuxerr",
"//pkg/eventchannel",
"//pkg/fd",
"//pkg/fspath",
"//pkg/log",
"//pkg/metric",
"//pkg/metric:metric_go_proto",
"//pkg/prometheus",
"//pkg/sentry/devices/memdev",
"//pkg/sentry/devices/nvproxy",
"//pkg/sentry/devices/tpuproxy/vfio",
"//pkg/sentry/fdcollector",
"//pkg/sentry/fdimport",
"//pkg/sentry/fsimpl/host",
"//pkg/sentry/fsimpl/pipefs",
"//pkg/sentry/fsimpl/user",
"//pkg/sentry/fsmetric",
"//pkg/sentry/kernel",
"//pkg/sentry/kernel/auth",
"//pkg/sentry/ktime",
"//pkg/sentry/limits",
"//pkg/sentry/socket/netstack",
"//pkg/sentry/state",
"//pkg/sentry/state/checkpointfiles",
"//pkg/sentry/state/stateio",
"//pkg/sentry/state/stateipc",
"//pkg/sentry/strace",
"//pkg/sentry/usage",
"//pkg/sentry/vfs",
"//pkg/sentry/watchdog",
"//pkg/sync",
"//pkg/tcpip/link/sniffer",
"//pkg/timing",
"//pkg/unet",
"//pkg/urpc",
"//pkg/usermem",
"//pkg/waiter",
":control_api_go_proto",
":tpu_control_proto_go_proto",
"@com_github_zap_proto_go//:go",
"@org_golang_google_protobuf//proto:go_default_library",
"@org_golang_google_protobuf//types/known/timestamppb",
"@org_golang_x_sys//unix:go_default_library",
],
)
go_test(
name = "control_test",
size = "small",
srcs = [
"exec_test.go",
"fs_test.go",
"proc_test.go",
],
library = ":control",
deps = [
"//pkg/abi/linux",
"//pkg/context",
"//pkg/errors/linuxerr",
"//pkg/log",
"//pkg/sentry/contexttest",
"//pkg/sentry/kernel/auth",
"//pkg/sentry/ktime",
"//pkg/sentry/usage",
"//pkg/sentry/vfs",
"//pkg/urpc",
"//pkg/usermem",
],
)