From c1718ecf4edf5d33ea12c6368165cd90a4229610 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Fri, 10 May 2019 13:05:04 +0200 Subject: sys/linux: fix alignment of cmsghdr_sock All cmsg's must be intptr aligned within the array. --- sys/linux/gen/amd64.go | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'sys/linux/gen/amd64.go') diff --git a/sys/linux/gen/amd64.go b/sys/linux/gen/amd64.go index 161145590..29a647164 100644 --- a/sys/linux/gen/amd64.go +++ b/sys/linux/gen/amd64.go @@ -1891,9 +1891,9 @@ var structDescs_amd64 = []*KeyedStruct{ &StructType{Key: StructKey{Name: "sctp_sndrcvinfo"}, FldName: "msg"}, }, AlignAttr: 8}}, {Key: StructKey{Name: "cmsghdr_sock"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "cmsghdr_sock", IsVarlen: true}, Fields: []Type{ - &StructType{Key: StructKey{Name: "cmsghdr_unaligned[SOL_SOCKET, SO_MARK, int32]"}, FldName: "mark"}, - &StructType{Key: StructKey{Name: "cmsghdr_unaligned[SOL_SOCKET, SO_TIMESTAMPING_OLD, int32]"}, FldName: "timestamping"}, - &StructType{Key: StructKey{Name: "cmsghdr_unaligned[SOL_SOCKET, SCM_TXTIME, int64]"}, FldName: "txtime"}, + &StructType{Key: StructKey{Name: "cmsghdr_t[SOL_SOCKET, SO_MARK, int32]"}, FldName: "mark"}, + &StructType{Key: StructKey{Name: "cmsghdr_t[SOL_SOCKET, SO_TIMESTAMPING_OLD, int32]"}, FldName: "timestamping"}, + &StructType{Key: StructKey{Name: "cmsghdr_t[SOL_SOCKET, SCM_TXTIME, int64]"}, FldName: "txtime"}, }}}, {Key: StructKey{Name: "cmsghdr_t[SOL_SOCKET, SCM_CREDENTIALS, cmsg_un_cred]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "cmsghdr_t[SOL_SOCKET, SCM_CREDENTIALS, cmsg_un_cred]", TypeSize: 32}, Fields: []Type{ &StructType{Key: StructKey{Name: "cmsghdr_unaligned[SOL_SOCKET, SCM_CREDENTIALS, cmsg_un_cred]"}, FldName: "unaligned"}, @@ -1902,6 +1902,17 @@ var structDescs_amd64 = []*KeyedStruct{ {Key: StructKey{Name: "cmsghdr_t[SOL_SOCKET, SCM_RIGHTS, array[fd]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "cmsghdr_t[SOL_SOCKET, SCM_RIGHTS, array[fd]]", IsVarlen: true}, Fields: []Type{ &StructType{Key: StructKey{Name: "cmsghdr_unaligned[SOL_SOCKET, SCM_RIGHTS, array[fd]]"}, FldName: "unaligned"}, }, AlignAttr: 8}}, + {Key: StructKey{Name: "cmsghdr_t[SOL_SOCKET, SCM_TXTIME, int64]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "cmsghdr_t[SOL_SOCKET, SCM_TXTIME, int64]", TypeSize: 24}, Fields: []Type{ + &StructType{Key: StructKey{Name: "cmsghdr_unaligned[SOL_SOCKET, SCM_TXTIME, int64]"}, FldName: "unaligned"}, + }, AlignAttr: 8}}, + {Key: StructKey{Name: "cmsghdr_t[SOL_SOCKET, SO_MARK, int32]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "cmsghdr_t[SOL_SOCKET, SO_MARK, int32]", TypeSize: 24}, Fields: []Type{ + &StructType{Key: StructKey{Name: "cmsghdr_unaligned[SOL_SOCKET, SO_MARK, int32]"}, FldName: "unaligned"}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true}, + }, AlignAttr: 8}}, + {Key: StructKey{Name: "cmsghdr_t[SOL_SOCKET, SO_TIMESTAMPING_OLD, int32]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "cmsghdr_t[SOL_SOCKET, SO_TIMESTAMPING_OLD, int32]", TypeSize: 24}, Fields: []Type{ + &StructType{Key: StructKey{Name: "cmsghdr_unaligned[SOL_SOCKET, SO_TIMESTAMPING_OLD, int32]"}, FldName: "unaligned"}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true}, + }, AlignAttr: 8}}, {Key: StructKey{Name: "cmsghdr_un"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "cmsghdr_un", IsVarlen: true}, Fields: []Type{ &StructType{Key: StructKey{Name: "cmsghdr_t[SOL_SOCKET, SCM_RIGHTS, array[fd]]"}, FldName: "rights"}, &StructType{Key: StructKey{Name: "cmsghdr_t[SOL_SOCKET, SCM_CREDENTIALS, cmsg_un_cred]"}, FldName: "cred"}, @@ -51076,4 +51087,4 @@ var consts_amd64 = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_amd64 = "d7e0ee6c2c0ab17be815876275b5902d85e2abf7" +const revision_amd64 = "1f971def4c2bb81dc8f64d20b10235b969a76da6" -- cgit mrf-deployment