audit/stable-5.18 PR 20220518

-----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCAAyFiEES0KozwfymdVUl37v6iDy2pc3iXMFAmKFMZgUHHBhdWxAcGF1
 bC1tb29yZS5jb20ACgkQ6iDy2pc3iXO/xhAAsjl2W83UdTQZk5i+LfoxGNxxt9O7
 iqCbm3qJa0UI352uI/+pDM1+vufg3QBVBSXcgiVS3UHB05w6TQTuYUUnbmsqv7he
 oZm5LcV5GzrNm+dmCgdY8bybMLBzhWFQ9aJsXSybmzErooSTCiAA/ALTfN9IfqhQ
 JJatS3EL/gmJ9fDbzJNFzwIFWGpDrxUO/mk3gGTMvLHMSwN5snv9WRAKMTcIFK+W
 W7ItUBnqJjnaoIscQUOH4sNVVy88mqqeduefPpYVOd08skWLWqh7SGFWmuq8Cdt8
 yS+Hk5K2q0mnO5gDkVhZDfvexXom/vKnLahw5RNZS6mcfO+x3SBhn+VdPHCpOzfi
 /NVXm9rpwt6/GIAb8vCPximeHD9mbq3HGfpdBBSaT7oilDQI2zAVw1T16fRqypvL
 2GZYqGQIfLOXywtPLPu4geJ3oG7nhBpVtTuOzGWA6ZwTRXRpfYtgYKELYq1qfF4X
 fBK95S1dMKYQUd74/E2Kw052Uynx/QxjTpNryuNdkHn0ipPtZ9Nqm9LWN2Ep/Z4u
 1dwt+a/w+k9IEKJe0h6L0Voy8a4/mODLu7JaSk5Rujbo7LNguQPKadeNbvUsSSdz
 MCTa4l+9Pk+20ClujZPo2QwHoixWCKn55Y+mMh6EXFeNEe8ita0b7LkSUcNLaT1D
 QqeD+42G4TkbZuw=
 =6+XM
 -----END PGP SIGNATURE-----

Merge tag 'audit-pr-20220518' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit

Pull audit fix from Paul Moore:
 "A single audit patch to fix a problem where a task's audit_context was
  not being properly reset with io_uring"

* tag 'audit-pr-20220518' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
  audit,io_uring,io-wq: call __audit_uring_exit for dummy contexts
This commit is contained in:
Linus Torvalds 2022-05-18 14:19:26 -10:00
commit 8194a00892
2 changed files with 7 additions and 1 deletions

View File

@ -339,7 +339,7 @@ static inline void audit_uring_entry(u8 op)
} }
static inline void audit_uring_exit(int success, long code) static inline void audit_uring_exit(int success, long code)
{ {
if (unlikely(!audit_dummy_context())) if (unlikely(audit_context()))
__audit_uring_exit(success, code); __audit_uring_exit(success, code);
} }
static inline void audit_syscall_entry(int major, unsigned long a0, static inline void audit_syscall_entry(int major, unsigned long a0,

View File

@ -1959,6 +1959,12 @@ void __audit_uring_exit(int success, long code)
{ {
struct audit_context *ctx = audit_context(); struct audit_context *ctx = audit_context();
if (ctx->dummy) {
if (ctx->context != AUDIT_CTX_URING)
return;
goto out;
}
if (ctx->context == AUDIT_CTX_SYSCALL) { if (ctx->context == AUDIT_CTX_SYSCALL) {
/* /*
* NOTE: See the note in __audit_uring_entry() about the case * NOTE: See the note in __audit_uring_entry() about the case