This changes security_hook_heads to use hlist_heads instead of the circular doubly-linked list heads. This should cut down the size of the struct by about half. In addition, it allows mutation of the hooks at the tail of the callback list without having to modify the head. The longer-term purpose of this is to enable making the heads read only.
Showing the changes to scripts (1 of 3 files). Show all
Unified · Split
| @@ -52,8 +52,8 @@ static const struct whitelist_entry whitelist[] = { · 51 unmodified lines | |||
| 52 | { "net/unix/af_unix.c", "unix_skb_parms", "char" }, | 52 | { "net/unix/af_unix.c", "unix_skb_parms", "char" }, |
| 53 | /* big_key payload.data struct splashing */ | 53 | /* big_key payload.data struct splashing */ |
| 54 | { "security/keys/big_key.c", "path", "void *" }, | 54 | { "security/keys/big_key.c", "path", "void *" }, |
| 55 | /* walk struct security_hook_heads as an array of struct list_head */ | 55 | /* walk struct security_hook_heads as an array of struct hlist_head */ |
| 56 | { "security/security.c", "list_head", "security_hook_heads" }, | 56 | { "security/security.c", "hlist_head", "security_hook_heads" }, |
| 57 | { } | 57 | { } |
| 58 | }; | 58 | }; |
| 59 | 59 | ||