aboutsummaryrefslogtreecommitdiffstats
path: root/sys/openbsd
diff options
context:
space:
mode:
authorAnton Lindqvist <anton@basename.se>2019-06-08 09:38:33 +0200
committerDmitry Vyukov <dvyukov@google.com>2019-06-08 10:13:59 +0200
commit0159583c3bcfe4ece6b839712327cd955aabee66 (patch)
treef74cffa931e65dbbd878d09dcd70442aa431e9a4 /sys/openbsd
parentcf9c3a505dd23f7f4e391c0c24c9a9d3b9b26385 (diff)
sys/openbsd: prevent using vio0 as a virtual multicast interface
One of the root causes to reported "lost connection to test machine" is when the egress network interface is being used as a multicast interface: setsockopt$inet6_MRT6_ADD_MIF(r0, 0x29, 0x66, &(0x7f0000000180)={0x2}, 0xc) Prevent such syscalls from being generated by limiting the range of allowed interface indices.
Diffstat (limited to 'sys/openbsd')
-rw-r--r--sys/openbsd/gen/amd64.go4
-rw-r--r--sys/openbsd/socket_inet6.txt4
2 files changed, 5 insertions, 3 deletions
diff --git a/sys/openbsd/gen/amd64.go b/sys/openbsd/gen/amd64.go
index 68ebe113e..d82c59ca1 100644
--- a/sys/openbsd/gen/amd64.go
+++ b/sys/openbsd/gen/amd64.go
@@ -189,7 +189,7 @@ var structDescs_amd64 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "mif6c_mifi", TypeSize: 2}}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mif6c_flags", FldName: "mif6c_flags", TypeSize: 1}}, Vals: []uint64{1}, BitMask: true},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "vifc_threshold", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "mif6c_pifi", TypeSize: 2}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "mif6c_pifi", TypeSize: 2}}, Kind: 2, RangeBegin: 4, RangeEnd: 65535},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 2}}, IsPad: true},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "vifc_rate_limit", TypeSize: 4}}},
}}},
@@ -2970,4 +2970,4 @@ var consts_amd64 = []ConstValue{
{Name: "__MAP_NOREPLACE", Value: 2048},
}
-const revision_amd64 = "046b8d64999817e17f0813efa9e374d2ee520a81"
+const revision_amd64 = "6255253f9674826c8aeacb80503607f3c81dade2"
diff --git a/sys/openbsd/socket_inet6.txt b/sys/openbsd/socket_inet6.txt
index 48aef6b33..7eb456622 100644
--- a/sys/openbsd/socket_inet6.txt
+++ b/sys/openbsd/socket_inet6.txt
@@ -46,7 +46,9 @@ mif6ctl {
mif6c_mifi int16
mif6c_flags flags[mif6c_flags, int8]
vifc_threshold int8
- mif6c_pifi int16
+# Do not allow low interface indices since one of them is likely to be the
+# egress interface vio0 used on GCE instances during fuzzing.
+ mif6c_pifi int16[4:0xffff]
vifc_rate_limit int32
}