diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-09-08 15:41:25 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-09-08 15:41:25 -0400 |
commit | b793c005ceabf6db0b17494b0ec67ade6796bb34 (patch) | |
tree | 080c884f04254403ec9564742f591a9fd9b7e95a /include | |
parent | 6f0a2fc1feb19bd142961a39dc118e7e55418b3f (diff) | |
parent | 07f081fb5057b2ea98baeca3a47bf0eb33e94aa1 (diff) |
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
Pull security subsystem updates from James Morris:
"Highlights:
- PKCS#7 support added to support signed kexec, also utilized for
module signing. See comments in 3f1e1bea.
** NOTE: this requires linking against the OpenSSL library, which
must be installed, e.g. the openssl-devel on Fedora **
- Smack
- add IPv6 host labeling; ignore labels on kernel threads
- support smack labeling mounts which use binary mount data
- SELinux:
- add ioctl whitelisting (see
http://kernsec.org/files/lss2015/vanderstoep.pdf)
- fix mprotect PROT_EXEC regression caused by mm change
- Seccomp:
- add ptrace options for suspend/resume"
* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (57 commits)
PKCS#7: Add OIDs for sha224, sha284 and sha512 hash algos and use them
Documentation/Changes: Now need OpenSSL devel packages for module signing
scripts: add extract-cert and sign-file to .gitignore
modsign: Handle signing key in source tree
modsign: Use if_changed rule for extracting cert from module signing key
Move certificate handling to its own directory
sign-file: Fix warning about BIO_reset() return value
PKCS#7: Add MODULE_LICENSE() to test module
Smack - Fix build error with bringup unconfigured
sign-file: Document dependency on OpenSSL devel libraries
PKCS#7: Appropriately restrict authenticated attributes and content type
KEYS: Add a name for PKEY_ID_PKCS7
PKCS#7: Improve and export the X.509 ASN.1 time object decoder
modsign: Use extract-cert to process CONFIG_SYSTEM_TRUSTED_KEYS
extract-cert: Cope with multiple X.509 certificates in a single file
sign-file: Generate CMS message as signature instead of PKCS#7
PKCS#7: Support CMS messages also [RFC5652]
X.509: Change recorded SKID & AKID to not include Subject or Issuer
PKCS#7: Check content type and versions
MAINTAINERS: The keyrings mailing list has moved
...
Diffstat (limited to 'include')
-rw-r--r-- | include/crypto/pkcs7.h | 13 | ||||
-rw-r--r-- | include/crypto/public_key.h | 18 | ||||
-rw-r--r-- | include/keys/system_keyring.h | 7 | ||||
-rw-r--r-- | include/linux/asn1_ber_bytecode.h | 16 | ||||
-rw-r--r-- | include/linux/lsm_audit.h | 7 | ||||
-rw-r--r-- | include/linux/lsm_hooks.h | 6 | ||||
-rw-r--r-- | include/linux/oid_registry.h | 7 | ||||
-rw-r--r-- | include/linux/ptrace.h | 1 | ||||
-rw-r--r-- | include/linux/seccomp.h | 2 | ||||
-rw-r--r-- | include/linux/verify_pefile.h | 6 | ||||
-rw-r--r-- | include/uapi/linux/ptrace.h | 6 |
11 files changed, 75 insertions, 14 deletions
diff --git a/include/crypto/pkcs7.h b/include/crypto/pkcs7.h index 691c79172a26..441aff9b5aa7 100644 --- a/include/crypto/pkcs7.h +++ b/include/crypto/pkcs7.h | |||
@@ -9,6 +9,11 @@ | |||
9 | * 2 of the Licence, or (at your option) any later version. | 9 | * 2 of the Licence, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #ifndef _CRYPTO_PKCS7_H | ||
13 | #define _CRYPTO_PKCS7_H | ||
14 | |||
15 | #include <crypto/public_key.h> | ||
16 | |||
12 | struct key; | 17 | struct key; |
13 | struct pkcs7_message; | 18 | struct pkcs7_message; |
14 | 19 | ||
@@ -33,4 +38,10 @@ extern int pkcs7_validate_trust(struct pkcs7_message *pkcs7, | |||
33 | /* | 38 | /* |
34 | * pkcs7_verify.c | 39 | * pkcs7_verify.c |
35 | */ | 40 | */ |
36 | extern int pkcs7_verify(struct pkcs7_message *pkcs7); | 41 | extern int pkcs7_verify(struct pkcs7_message *pkcs7, |
42 | enum key_being_used_for usage); | ||
43 | |||
44 | extern int pkcs7_supply_detached_data(struct pkcs7_message *pkcs7, | ||
45 | const void *data, size_t datalen); | ||
46 | |||
47 | #endif /* _CRYPTO_PKCS7_H */ | ||
diff --git a/include/crypto/public_key.h b/include/crypto/public_key.h index 54add2069901..067c242b1e15 100644 --- a/include/crypto/public_key.h +++ b/include/crypto/public_key.h | |||
@@ -33,12 +33,27 @@ extern const struct public_key_algorithm *pkey_algo[PKEY_ALGO__LAST]; | |||
33 | enum pkey_id_type { | 33 | enum pkey_id_type { |
34 | PKEY_ID_PGP, /* OpenPGP generated key ID */ | 34 | PKEY_ID_PGP, /* OpenPGP generated key ID */ |
35 | PKEY_ID_X509, /* X.509 arbitrary subjectKeyIdentifier */ | 35 | PKEY_ID_X509, /* X.509 arbitrary subjectKeyIdentifier */ |
36 | PKEY_ID_PKCS7, /* Signature in PKCS#7 message */ | ||
36 | PKEY_ID_TYPE__LAST | 37 | PKEY_ID_TYPE__LAST |
37 | }; | 38 | }; |
38 | 39 | ||
39 | extern const char *const pkey_id_type_name[PKEY_ID_TYPE__LAST]; | 40 | extern const char *const pkey_id_type_name[PKEY_ID_TYPE__LAST]; |
40 | 41 | ||
41 | /* | 42 | /* |
43 | * The use to which an asymmetric key is being put. | ||
44 | */ | ||
45 | enum key_being_used_for { | ||
46 | VERIFYING_MODULE_SIGNATURE, | ||
47 | VERIFYING_FIRMWARE_SIGNATURE, | ||
48 | VERIFYING_KEXEC_PE_SIGNATURE, | ||
49 | VERIFYING_KEY_SIGNATURE, | ||
50 | VERIFYING_KEY_SELF_SIGNATURE, | ||
51 | VERIFYING_UNSPECIFIED_SIGNATURE, | ||
52 | NR__KEY_BEING_USED_FOR | ||
53 | }; | ||
54 | extern const char *const key_being_used_for[NR__KEY_BEING_USED_FOR]; | ||
55 | |||
56 | /* | ||
42 | * Cryptographic data for the public-key subtype of the asymmetric key type. | 57 | * Cryptographic data for the public-key subtype of the asymmetric key type. |
43 | * | 58 | * |
44 | * Note that this may include private part of the key as well as the public | 59 | * Note that this may include private part of the key as well as the public |
@@ -101,7 +116,8 @@ extern int verify_signature(const struct key *key, | |||
101 | 116 | ||
102 | struct asymmetric_key_id; | 117 | struct asymmetric_key_id; |
103 | extern struct key *x509_request_asymmetric_key(struct key *keyring, | 118 | extern struct key *x509_request_asymmetric_key(struct key *keyring, |
104 | const struct asymmetric_key_id *kid, | 119 | const struct asymmetric_key_id *id, |
120 | const struct asymmetric_key_id *skid, | ||
105 | bool partial); | 121 | bool partial); |
106 | 122 | ||
107 | #endif /* _LINUX_PUBLIC_KEY_H */ | 123 | #endif /* _LINUX_PUBLIC_KEY_H */ |
diff --git a/include/keys/system_keyring.h b/include/keys/system_keyring.h index 72665eb80692..b20cd885c1fd 100644 --- a/include/keys/system_keyring.h +++ b/include/keys/system_keyring.h | |||
@@ -15,6 +15,7 @@ | |||
15 | #ifdef CONFIG_SYSTEM_TRUSTED_KEYRING | 15 | #ifdef CONFIG_SYSTEM_TRUSTED_KEYRING |
16 | 16 | ||
17 | #include <linux/key.h> | 17 | #include <linux/key.h> |
18 | #include <crypto/public_key.h> | ||
18 | 19 | ||
19 | extern struct key *system_trusted_keyring; | 20 | extern struct key *system_trusted_keyring; |
20 | static inline struct key *get_system_trusted_keyring(void) | 21 | static inline struct key *get_system_trusted_keyring(void) |
@@ -28,4 +29,10 @@ static inline struct key *get_system_trusted_keyring(void) | |||
28 | } | 29 | } |
29 | #endif | 30 | #endif |
30 | 31 | ||
32 | #ifdef CONFIG_SYSTEM_DATA_VERIFICATION | ||
33 | extern int system_verify_data(const void *data, unsigned long len, | ||
34 | const void *raw_pkcs7, size_t pkcs7_len, | ||
35 | enum key_being_used_for usage); | ||
36 | #endif | ||
37 | |||
31 | #endif /* _KEYS_SYSTEM_KEYRING_H */ | 38 | #endif /* _KEYS_SYSTEM_KEYRING_H */ |
diff --git a/include/linux/asn1_ber_bytecode.h b/include/linux/asn1_ber_bytecode.h index 945d44ae529c..ab3a6c002f7b 100644 --- a/include/linux/asn1_ber_bytecode.h +++ b/include/linux/asn1_ber_bytecode.h | |||
@@ -45,23 +45,27 @@ enum asn1_opcode { | |||
45 | ASN1_OP_MATCH_JUMP = 0x04, | 45 | ASN1_OP_MATCH_JUMP = 0x04, |
46 | ASN1_OP_MATCH_JUMP_OR_SKIP = 0x05, | 46 | ASN1_OP_MATCH_JUMP_OR_SKIP = 0x05, |
47 | ASN1_OP_MATCH_ANY = 0x08, | 47 | ASN1_OP_MATCH_ANY = 0x08, |
48 | ASN1_OP_MATCH_ANY_OR_SKIP = 0x09, | ||
48 | ASN1_OP_MATCH_ANY_ACT = 0x0a, | 49 | ASN1_OP_MATCH_ANY_ACT = 0x0a, |
50 | ASN1_OP_MATCH_ANY_ACT_OR_SKIP = 0x0b, | ||
49 | /* Everything before here matches unconditionally */ | 51 | /* Everything before here matches unconditionally */ |
50 | 52 | ||
51 | ASN1_OP_COND_MATCH_OR_SKIP = 0x11, | 53 | ASN1_OP_COND_MATCH_OR_SKIP = 0x11, |
52 | ASN1_OP_COND_MATCH_ACT_OR_SKIP = 0x13, | 54 | ASN1_OP_COND_MATCH_ACT_OR_SKIP = 0x13, |
53 | ASN1_OP_COND_MATCH_JUMP_OR_SKIP = 0x15, | 55 | ASN1_OP_COND_MATCH_JUMP_OR_SKIP = 0x15, |
54 | ASN1_OP_COND_MATCH_ANY = 0x18, | 56 | ASN1_OP_COND_MATCH_ANY = 0x18, |
57 | ASN1_OP_COND_MATCH_ANY_OR_SKIP = 0x19, | ||
55 | ASN1_OP_COND_MATCH_ANY_ACT = 0x1a, | 58 | ASN1_OP_COND_MATCH_ANY_ACT = 0x1a, |
59 | ASN1_OP_COND_MATCH_ANY_ACT_OR_SKIP = 0x1b, | ||
56 | 60 | ||
57 | /* Everything before here will want a tag from the data */ | 61 | /* Everything before here will want a tag from the data */ |
58 | #define ASN1_OP__MATCHES_TAG ASN1_OP_COND_MATCH_ANY_ACT | 62 | #define ASN1_OP__MATCHES_TAG ASN1_OP_COND_MATCH_ANY_ACT_OR_SKIP |
59 | 63 | ||
60 | /* These are here to help fill up space */ | 64 | /* These are here to help fill up space */ |
61 | ASN1_OP_COND_FAIL = 0x1b, | 65 | ASN1_OP_COND_FAIL = 0x1c, |
62 | ASN1_OP_COMPLETE = 0x1c, | 66 | ASN1_OP_COMPLETE = 0x1d, |
63 | ASN1_OP_ACT = 0x1d, | 67 | ASN1_OP_ACT = 0x1e, |
64 | ASN1_OP_RETURN = 0x1e, | 68 | ASN1_OP_MAYBE_ACT = 0x1f, |
65 | 69 | ||
66 | /* The following eight have bit 0 -> SET, 1 -> OF, 2 -> ACT */ | 70 | /* The following eight have bit 0 -> SET, 1 -> OF, 2 -> ACT */ |
67 | ASN1_OP_END_SEQ = 0x20, | 71 | ASN1_OP_END_SEQ = 0x20, |
@@ -76,6 +80,8 @@ enum asn1_opcode { | |||
76 | #define ASN1_OP_END__OF 0x02 | 80 | #define ASN1_OP_END__OF 0x02 |
77 | #define ASN1_OP_END__ACT 0x04 | 81 | #define ASN1_OP_END__ACT 0x04 |
78 | 82 | ||
83 | ASN1_OP_RETURN = 0x28, | ||
84 | |||
79 | ASN1_OP__NR | 85 | ASN1_OP__NR |
80 | }; | 86 | }; |
81 | 87 | ||
diff --git a/include/linux/lsm_audit.h b/include/linux/lsm_audit.h index 1cc89e9df480..ffb9c9da4f39 100644 --- a/include/linux/lsm_audit.h +++ b/include/linux/lsm_audit.h | |||
@@ -40,6 +40,11 @@ struct lsm_network_audit { | |||
40 | } fam; | 40 | } fam; |
41 | }; | 41 | }; |
42 | 42 | ||
43 | struct lsm_ioctlop_audit { | ||
44 | struct path path; | ||
45 | u16 cmd; | ||
46 | }; | ||
47 | |||
43 | /* Auxiliary data to use in generating the audit record. */ | 48 | /* Auxiliary data to use in generating the audit record. */ |
44 | struct common_audit_data { | 49 | struct common_audit_data { |
45 | char type; | 50 | char type; |
@@ -53,6 +58,7 @@ struct common_audit_data { | |||
53 | #define LSM_AUDIT_DATA_KMOD 8 | 58 | #define LSM_AUDIT_DATA_KMOD 8 |
54 | #define LSM_AUDIT_DATA_INODE 9 | 59 | #define LSM_AUDIT_DATA_INODE 9 |
55 | #define LSM_AUDIT_DATA_DENTRY 10 | 60 | #define LSM_AUDIT_DATA_DENTRY 10 |
61 | #define LSM_AUDIT_DATA_IOCTL_OP 11 | ||
56 | union { | 62 | union { |
57 | struct path path; | 63 | struct path path; |
58 | struct dentry *dentry; | 64 | struct dentry *dentry; |
@@ -68,6 +74,7 @@ struct common_audit_data { | |||
68 | } key_struct; | 74 | } key_struct; |
69 | #endif | 75 | #endif |
70 | char *kmod_name; | 76 | char *kmod_name; |
77 | struct lsm_ioctlop_audit *op; | ||
71 | } u; | 78 | } u; |
72 | /* this union contains LSM specific data */ | 79 | /* this union contains LSM specific data */ |
73 | union { | 80 | union { |
diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h index 9429f054c323..ec3a6bab29de 100644 --- a/include/linux/lsm_hooks.h +++ b/include/linux/lsm_hooks.h | |||
@@ -1881,8 +1881,10 @@ static inline void security_delete_hooks(struct security_hook_list *hooks, | |||
1881 | 1881 | ||
1882 | extern int __init security_module_enable(const char *module); | 1882 | extern int __init security_module_enable(const char *module); |
1883 | extern void __init capability_add_hooks(void); | 1883 | extern void __init capability_add_hooks(void); |
1884 | #ifdef CONFIG_SECURITY_YAMA_STACKED | 1884 | #ifdef CONFIG_SECURITY_YAMA |
1885 | void __init yama_add_hooks(void); | 1885 | extern void __init yama_add_hooks(void); |
1886 | #else | ||
1887 | static inline void __init yama_add_hooks(void) { } | ||
1886 | #endif | 1888 | #endif |
1887 | 1889 | ||
1888 | #endif /* ! __LINUX_LSM_HOOKS_H */ | 1890 | #endif /* ! __LINUX_LSM_HOOKS_H */ |
diff --git a/include/linux/oid_registry.h b/include/linux/oid_registry.h index c2bbf672b84e..d2fa9ca42e9a 100644 --- a/include/linux/oid_registry.h +++ b/include/linux/oid_registry.h | |||
@@ -41,7 +41,7 @@ enum OID { | |||
41 | OID_signed_data, /* 1.2.840.113549.1.7.2 */ | 41 | OID_signed_data, /* 1.2.840.113549.1.7.2 */ |
42 | /* PKCS#9 {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9)} */ | 42 | /* PKCS#9 {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9)} */ |
43 | OID_email_address, /* 1.2.840.113549.1.9.1 */ | 43 | OID_email_address, /* 1.2.840.113549.1.9.1 */ |
44 | OID_content_type, /* 1.2.840.113549.1.9.3 */ | 44 | OID_contentType, /* 1.2.840.113549.1.9.3 */ |
45 | OID_messageDigest, /* 1.2.840.113549.1.9.4 */ | 45 | OID_messageDigest, /* 1.2.840.113549.1.9.4 */ |
46 | OID_signingTime, /* 1.2.840.113549.1.9.5 */ | 46 | OID_signingTime, /* 1.2.840.113549.1.9.5 */ |
47 | OID_smimeCapabilites, /* 1.2.840.113549.1.9.15 */ | 47 | OID_smimeCapabilites, /* 1.2.840.113549.1.9.15 */ |
@@ -54,6 +54,8 @@ enum OID { | |||
54 | 54 | ||
55 | /* Microsoft Authenticode & Software Publishing */ | 55 | /* Microsoft Authenticode & Software Publishing */ |
56 | OID_msIndirectData, /* 1.3.6.1.4.1.311.2.1.4 */ | 56 | OID_msIndirectData, /* 1.3.6.1.4.1.311.2.1.4 */ |
57 | OID_msStatementType, /* 1.3.6.1.4.1.311.2.1.11 */ | ||
58 | OID_msSpOpusInfo, /* 1.3.6.1.4.1.311.2.1.12 */ | ||
57 | OID_msPeImageDataObjId, /* 1.3.6.1.4.1.311.2.1.15 */ | 59 | OID_msPeImageDataObjId, /* 1.3.6.1.4.1.311.2.1.15 */ |
58 | OID_msIndividualSPKeyPurpose, /* 1.3.6.1.4.1.311.2.1.21 */ | 60 | OID_msIndividualSPKeyPurpose, /* 1.3.6.1.4.1.311.2.1.21 */ |
59 | OID_msOutlookExpress, /* 1.3.6.1.4.1.311.16.4 */ | 61 | OID_msOutlookExpress, /* 1.3.6.1.4.1.311.16.4 */ |
@@ -61,6 +63,9 @@ enum OID { | |||
61 | OID_certAuthInfoAccess, /* 1.3.6.1.5.5.7.1.1 */ | 63 | OID_certAuthInfoAccess, /* 1.3.6.1.5.5.7.1.1 */ |
62 | OID_sha1, /* 1.3.14.3.2.26 */ | 64 | OID_sha1, /* 1.3.14.3.2.26 */ |
63 | OID_sha256, /* 2.16.840.1.101.3.4.2.1 */ | 65 | OID_sha256, /* 2.16.840.1.101.3.4.2.1 */ |
66 | OID_sha384, /* 2.16.840.1.101.3.4.2.2 */ | ||
67 | OID_sha512, /* 2.16.840.1.101.3.4.2.3 */ | ||
68 | OID_sha224, /* 2.16.840.1.101.3.4.2.4 */ | ||
64 | 69 | ||
65 | /* Distinguished Name attribute IDs [RFC 2256] */ | 70 | /* Distinguished Name attribute IDs [RFC 2256] */ |
66 | OID_commonName, /* 2.5.4.3 */ | 71 | OID_commonName, /* 2.5.4.3 */ |
diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h index 987a73a40ef8..061265f92876 100644 --- a/include/linux/ptrace.h +++ b/include/linux/ptrace.h | |||
@@ -34,6 +34,7 @@ | |||
34 | #define PT_TRACE_SECCOMP PT_EVENT_FLAG(PTRACE_EVENT_SECCOMP) | 34 | #define PT_TRACE_SECCOMP PT_EVENT_FLAG(PTRACE_EVENT_SECCOMP) |
35 | 35 | ||
36 | #define PT_EXITKILL (PTRACE_O_EXITKILL << PT_OPT_FLAG_SHIFT) | 36 | #define PT_EXITKILL (PTRACE_O_EXITKILL << PT_OPT_FLAG_SHIFT) |
37 | #define PT_SUSPEND_SECCOMP (PTRACE_O_SUSPEND_SECCOMP << PT_OPT_FLAG_SHIFT) | ||
37 | 38 | ||
38 | /* single stepping state bits (used on ARM and PA-RISC) */ | 39 | /* single stepping state bits (used on ARM and PA-RISC) */ |
39 | #define PT_SINGLESTEP_BIT 31 | 40 | #define PT_SINGLESTEP_BIT 31 |
diff --git a/include/linux/seccomp.h b/include/linux/seccomp.h index a19ddacdac30..f4265039a94c 100644 --- a/include/linux/seccomp.h +++ b/include/linux/seccomp.h | |||
@@ -78,7 +78,7 @@ static inline long prctl_set_seccomp(unsigned long arg2, char __user *arg3) | |||
78 | 78 | ||
79 | static inline int seccomp_mode(struct seccomp *s) | 79 | static inline int seccomp_mode(struct seccomp *s) |
80 | { | 80 | { |
81 | return 0; | 81 | return SECCOMP_MODE_DISABLED; |
82 | } | 82 | } |
83 | #endif /* CONFIG_SECCOMP */ | 83 | #endif /* CONFIG_SECCOMP */ |
84 | 84 | ||
diff --git a/include/linux/verify_pefile.h b/include/linux/verify_pefile.h index ac34819214f9..da2049b5161c 100644 --- a/include/linux/verify_pefile.h +++ b/include/linux/verify_pefile.h | |||
@@ -12,7 +12,11 @@ | |||
12 | #ifndef _LINUX_VERIFY_PEFILE_H | 12 | #ifndef _LINUX_VERIFY_PEFILE_H |
13 | #define _LINUX_VERIFY_PEFILE_H | 13 | #define _LINUX_VERIFY_PEFILE_H |
14 | 14 | ||
15 | #include <crypto/public_key.h> | ||
16 | |||
15 | extern int verify_pefile_signature(const void *pebuf, unsigned pelen, | 17 | extern int verify_pefile_signature(const void *pebuf, unsigned pelen, |
16 | struct key *trusted_keyring, bool *_trusted); | 18 | struct key *trusted_keyring, |
19 | enum key_being_used_for usage, | ||
20 | bool *_trusted); | ||
17 | 21 | ||
18 | #endif /* _LINUX_VERIFY_PEFILE_H */ | 22 | #endif /* _LINUX_VERIFY_PEFILE_H */ |
diff --git a/include/uapi/linux/ptrace.h b/include/uapi/linux/ptrace.h index cf1019e15f5b..a7a697986614 100644 --- a/include/uapi/linux/ptrace.h +++ b/include/uapi/linux/ptrace.h | |||
@@ -89,9 +89,11 @@ struct ptrace_peeksiginfo_args { | |||
89 | #define PTRACE_O_TRACESECCOMP (1 << PTRACE_EVENT_SECCOMP) | 89 | #define PTRACE_O_TRACESECCOMP (1 << PTRACE_EVENT_SECCOMP) |
90 | 90 | ||
91 | /* eventless options */ | 91 | /* eventless options */ |
92 | #define PTRACE_O_EXITKILL (1 << 20) | 92 | #define PTRACE_O_EXITKILL (1 << 20) |
93 | #define PTRACE_O_SUSPEND_SECCOMP (1 << 21) | ||
93 | 94 | ||
94 | #define PTRACE_O_MASK (0x000000ff | PTRACE_O_EXITKILL) | 95 | #define PTRACE_O_MASK (\ |
96 | 0x000000ff | PTRACE_O_EXITKILL | PTRACE_O_SUSPEND_SECCOMP) | ||
95 | 97 | ||
96 | #include <asm/ptrace.h> | 98 | #include <asm/ptrace.h> |
97 | 99 | ||