2005-10-12 19:13:55

by Chris Wright

[permalink] [raw]
Subject: [GIT PATCH] LSM update, another missing hook

Please pull from:
rsync://rsync.kernel.org/pub/scm/linux/kernel/git/chrisw/lsm-2.6.git/
or if master.kernel.org hasn't synced up yet:
master.kernel.org:/pub/scm/linux/kernel/git/chrisw/lsm-2.6.git/

This has one small fix in it:

fs/aio.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)

Kostik Belousov:
aio syscalls are not checked by lsm

Patch inline below since it's small.

thanks,
-chris
--

>From nobody Mon Sep 17 00:00:00 2001
Subject: [PATCH] aio syscalls are not checked by lsm
From: Kostik Belousov <[email protected]>

another case of missing call to security_file_permission:
aio functions (namely, io_submit) does not check credentials
with security modules.

Below is the simple patch to the problem. It seems that it is
enough to check for rights at the request submission time.

Signed-off-by: Kostik Belousov <[email protected]>
Signed-off-by: Chris Wright <[email protected]>
---

fs/aio.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)

f223267dee21023ac5c1a0cdbbdbfed0dc8c8fff
diff --git a/fs/aio.c b/fs/aio.c
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -1418,6 +1418,9 @@ static ssize_t aio_setup_iocb(struct kio
if (unlikely(!access_ok(VERIFY_WRITE, kiocb->ki_buf,
kiocb->ki_left)))
break;
+ ret = security_file_permission(file, MAY_READ);
+ if (unlikely(ret))
+ break;
ret = -EINVAL;
if (file->f_op->aio_read)
kiocb->ki_retry = aio_pread;
@@ -1430,6 +1433,9 @@ static ssize_t aio_setup_iocb(struct kio
if (unlikely(!access_ok(VERIFY_READ, kiocb->ki_buf,
kiocb->ki_left)))
break;
+ ret = security_file_permission(file, MAY_WRITE);
+ if (unlikely(ret))
+ break;
ret = -EINVAL;
if (file->f_op->aio_write)
kiocb->ki_retry = aio_pwrite;