ANDROID: af_unix: Provide ABI fixes for recently introduced 'struct scm_fp_list' attribute 'edges'

Adding new attributes to the ABI protected 'struct scm_fp_list' changes
the offsets of the fields already present in the structure which could
cause issues if modules already have a copy and are unaware of the
changes.  Let's add it to the end of the structure, under the protection
of __GENKSYMS__ as is SOP.

Bug: 404256079
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ibe024d14ce8b4139baba244eae60012bb43dca64
This commit is contained in:
Lee Jones
2025-06-19 11:11:27 +01:00
parent 844c9666eb
commit de6b1e85b9
3 changed files with 256 additions and 7 deletions

View File

@@ -2478,6 +2478,11 @@ pointer_reference {
kind: POINTER
pointee_type_id: 0x082ccdd1
}
pointer_reference {
id: 0x08a51ea1
kind: POINTER
pointee_type_id: 0x08d49c19
}
pointer_reference {
id: 0x08a8dfa4
kind: POINTER
@@ -11523,6 +11528,11 @@ pointer_reference {
kind: POINTER
pointee_type_id: 0x5d82e969
}
pointer_reference {
id: 0x1df3293f
kind: POINTER
pointee_type_id: 0x5d8c4261
}
pointer_reference {
id: 0x1df3d475
kind: POINTER
@@ -12248,6 +12258,11 @@ pointer_reference {
kind: POINTER
pointee_type_id: 0xa8ae6b7a
}
pointer_reference {
id: 0x20c77d4a
kind: POINTER
pointee_type_id: 0xa95d13b4
}
pointer_reference {
id: 0x20d23755
kind: POINTER
@@ -29063,6 +29078,11 @@ pointer_reference {
kind: POINTER
pointee_type_id: 0xc0009f60
}
pointer_reference {
id: 0x3a91c7e7
kind: POINTER
pointee_type_id: 0xc007f900
}
pointer_reference {
id: 0x3a91ca5f
kind: POINTER
@@ -38536,6 +38556,11 @@ array {
number_of_elements: 3
element_type_id: 0x02cb01c6
}
array {
id: 0x1359d776
number_of_elements: 108
element_type_id: 0x384f7d7c
}
array {
id: 0x13735712
number_of_elements: 20
@@ -41957,6 +41982,10 @@ array {
id: 0xfca4258b
element_type_id: 0xe276adef
}
array {
id: 0xfcb1c304
element_type_id: 0xe22137d3
}
array {
id: 0xfd17183f
element_type_id: 0xe4ba5b3d
@@ -48083,6 +48112,12 @@ member {
name: "addr"
type_id: 0x33756485
}
member {
id: 0x24257f11
name: "addr"
type_id: 0x08a51ea1
offset: 6848
}
member {
id: 0x2425a5c3
name: "addr"
@@ -57950,6 +57985,12 @@ member {
type_id: 0x120540d1
offset: 4480
}
member {
id: 0xd38b8035
name: "bindlock"
type_id: 0xa7c362b0
offset: 7424
}
member {
id: 0x975a5c19
name: "bindv6only"
@@ -71070,10 +71111,10 @@ member {
type_id: 0x0484940b
}
member {
id: 0x11d6b697
id: 0x11d6ba75
name: "count_unix"
type_id: 0xb0312d5a
offset: 16448
offset: 16512
}
member {
id: 0x20014498
@@ -86150,12 +86191,23 @@ member {
type_id: 0xf313e71a
offset: 33280
}
member {
id: 0x76197573
name: "edges"
type_id: 0xd3c80119
}
member {
id: 0x7692e117
name: "edges"
type_id: 0x585b40a5
offset: 1728
}
member {
id: 0x76d74bd1
name: "edges"
type_id: 0x1df3293f
offset: 16448
}
member {
id: 0x31c31f3f
name: "edid"
@@ -100446,6 +100498,12 @@ member {
type_id: 0x246497bd
offset: 128
}
member {
id: 0x80572460
name: "gc_flags"
type_id: 0x33756485
offset: 8192
}
member {
id: 0x8fd944b0
name: "gc_interval"
@@ -112701,6 +112759,12 @@ member {
type_id: 0xd3c80119
offset: 2752
}
member {
id: 0x79c0c441
name: "inflight"
type_id: 0x33756485
offset: 8064
}
member {
id: 0x79f74293
name: "inflight"
@@ -115737,6 +115801,12 @@ member {
type_id: 0xd3c80119
offset: 20288
}
member {
id: 0x3eb3deac
name: "iolock"
type_id: 0xa7c362b0
offset: 7040
}
member {
id: 0x5131ffa2
name: "iomap"
@@ -123393,6 +123463,12 @@ member {
type_id: 0xd3c80119
offset: 1024
}
member {
id: 0x556d5327
name: "link"
type_id: 0xd3c80119
offset: 7936
}
member {
id: 0x556d57ec
name: "link"
@@ -124928,6 +125004,12 @@ member {
type_id: 0xf313e71a
offset: 32
}
member {
id: 0x2d1fe1e3
name: "lock"
type_id: 0xf313e71a
offset: 8128
}
member {
id: 0x2d1fe1f3
name: "lock"
@@ -138357,6 +138439,12 @@ member {
type_id: 0xfc59be2e
offset: 128
}
member {
id: 0x0d27d97f
name: "name"
type_id: 0xfcb1c304
offset: 64
}
member {
id: 0x0d369e2a
name: "name"
@@ -143920,6 +144008,11 @@ member {
type_id: 0x92233392
offset: 1024
}
member {
id: 0xc7d661bf
name: "nr_fds"
type_id: 0x74d29cf1
}
member {
id: 0xc661bf13
name: "nr_file_filters"
@@ -148506,6 +148599,12 @@ member {
type_id: 0x0dad77a5
offset: 896
}
member {
id: 0x337b4b40
name: "oob_skb"
type_id: 0x054f691a
offset: 9600
}
member {
id: 0x97510416
name: "oom_flag_origin"
@@ -150535,6 +150634,12 @@ member {
type_id: 0x34d79405
offset: 128
}
member {
id: 0x0fc2a86e
name: "out_degree"
type_id: 0x33756485
offset: 256
}
member {
id: 0xbdac191c
name: "out_ep"
@@ -153437,6 +153542,12 @@ member {
type_id: 0x5adf57ae
offset: 256
}
member {
id: 0x77353e9c
name: "path"
type_id: 0x71a68091
offset: 6912
}
member {
id: 0x776fe9d5
name: "path"
@@ -154435,6 +154546,12 @@ member {
name: "peer"
type_id: 0x0258f96e
}
member {
id: 0xb794a532
name: "peer"
type_id: 0x1d44326e
offset: 7808
}
member {
id: 0x3be8531a
name: "peer2peer"
@@ -154469,6 +154586,18 @@ member {
type_id: 0x7584e7da
offset: 304
}
member {
id: 0x6a6786bf
name: "peer_wake"
type_id: 0x347ff86e
offset: 9216
}
member {
id: 0x337f3f92
name: "peer_wq"
type_id: 0x5eee2044
offset: 8704
}
member {
id: 0xc29a8766
name: "peers"
@@ -160155,6 +160284,11 @@ member {
type_id: 0x6423b0d9
offset: 608
}
member {
id: 0x5ba539f6
name: "predecessor"
type_id: 0x3a91c7e7
}
member {
id: 0x649fc3ef
name: "predicted"
@@ -180503,6 +180637,12 @@ member {
name: "sclass"
type_id: 0xc9082b19
}
member {
id: 0xac8121db
name: "scm_stat"
type_id: 0xfa80d3fa
offset: 9536
}
member {
id: 0xe94f5bce
name: "scmd_flags"
@@ -194307,6 +194447,12 @@ member {
type_id: 0xe62ebf07
offset: 64
}
member {
id: 0x132c9198
name: "successor"
type_id: 0x3a91c7e7
offset: 64
}
member {
id: 0x90938126
name: "suggested_x_property"
@@ -194385,6 +194531,17 @@ member {
type_id: 0x2e0f9112
offset: 512
}
member {
id: 0xa2e62cd6
name: "sun_family"
type_id: 0xe0705941
}
member {
id: 0x7339613c
name: "sun_path"
type_id: 0x1359d776
offset: 16
}
member {
id: 0xc6d8a98e
name: "super_block_align"
@@ -212514,6 +212671,18 @@ member {
type_id: 0xc9082b19
offset: 8960
}
member {
id: 0x5eddc09d
name: "vertex"
type_id: 0x20c77d4a
offset: 7872
}
member {
id: 0x957e8a2d
name: "vertex_entry"
type_id: 0xd3c80119
offset: 128
}
member {
id: 0x7f926278
name: "vertical_position"
@@ -266820,13 +266989,23 @@ struct_union {
kind: STRUCT
name: "scm_fp_list"
definition {
bytesize: 2064
bytesize: 2072
member_id: 0x65956ee9
member_id: 0x97463852
member_id: 0x042a2402
member_id: 0x5449f846
member_id: 0x7b11d7cc
member_id: 0x11d6b697
member_id: 0x76d74bd1
member_id: 0x11d6ba75
}
}
struct_union {
id: 0xfa80d3fa
kind: STRUCT
name: "scm_stat"
definition {
bytesize: 4
member_id: 0xc7d661bf
}
}
struct_union {
@@ -271838,6 +272017,16 @@ struct_union {
member_id: 0x98cf3099
}
}
struct_union {
id: 0xe22137d3
kind: STRUCT
name: "sockaddr_un"
definition {
bytesize: 110
member_id: 0xa2e62cd6
member_id: 0x7339613c
}
}
struct_union {
id: 0x14637955
kind: STRUCT
@@ -277243,6 +277432,51 @@ struct_union {
member_id: 0xb008455d
}
}
struct_union {
id: 0x08d49c19
kind: STRUCT
name: "unix_address"
definition {
bytesize: 8
member_id: 0xb7dcf8ac
member_id: 0xb862f8be
member_id: 0x0d27d97f
}
}
struct_union {
id: 0x5d8c4261
kind: STRUCT
name: "unix_edge"
definition {
bytesize: 32
member_id: 0x5ba539f6
member_id: 0x132c9198
member_id: 0x957e8a2d
}
}
struct_union {
id: 0xc007f900
kind: STRUCT
name: "unix_sock"
definition {
bytesize: 1216
member_id: 0x82ce9da8
member_id: 0x24257f11
member_id: 0x77353e9c
member_id: 0x3eb3deac
member_id: 0xd38b8035
member_id: 0xb794a532
member_id: 0x5eddc09d
member_id: 0x556d5327
member_id: 0x79c0c441
member_id: 0x2d1fe1e3
member_id: 0x80572460
member_id: 0x337f3f92
member_id: 0x6a6786bf
member_id: 0xac8121db
member_id: 0x337b4b40
}
}
struct_union {
id: 0x3f8f92cb
kind: STRUCT
@@ -277253,6 +277487,17 @@ struct_union {
member_id: 0xff1cd5bf
}
}
struct_union {
id: 0xa95d13b4
kind: STRUCT
name: "unix_vertex"
definition {
bytesize: 40
member_id: 0x76197573
member_id: 0x4d8789fe
member_id: 0x0fc2a86e
}
}
struct_union {
id: 0xad1e2d0f
kind: STRUCT

View File

@@ -151,3 +151,9 @@ type 'struct scm_fp_list' changed
member 'short count_unix' changed
offset changed by 128
type 'struct scm_fp_list' changed
byte size changed from 2064 to 2072
member 'struct unix_edge* edges' was added
member 'short count_unix' changed
offset changed by 64

View File

@@ -29,14 +29,12 @@ struct unix_edge;
struct scm_fp_list {
short count;
short max;
#ifdef CONFIG_UNIX
struct unix_edge *edges;
#endif
struct user_struct *user;
struct file *fp[SCM_MAX_FD];
#ifndef __GENKSYMS__
#ifdef CONFIG_UNIX
struct list_head vertices;
struct unix_edge *edges;
#endif
short count_unix;
#endif