IMA: open new file for read
authorMimi Zohar <zohar@linux.vnet.ibm.com>
Wed, 2 Sep 2009 15:40:32 +0000 (11:40 -0400)
committerJames Morris <jmorris@namei.org>
Thu, 3 Sep 2009 02:06:12 +0000 (12:06 +1000)
When creating a new file, ima_path_check() assumed the new file
was being opened for write. Call ima_path_check() with the
appropriate acc_mode so that the read/write counters are
incremented correctly.

Signed-off-by: Mimi Zohar <zohar@us.ibm.com>
Signed-off-by: James Morris <jmorris@namei.org>
fs/namei.c

index f3c5b27..ee01308 100644 (file)
@@ -1533,9 +1533,11 @@ int may_open(struct path *path, int acc_mode, int flag)
        if (error)
                return error;
 
-       error = ima_path_check(path,
-                              acc_mode & (MAY_READ | MAY_WRITE | MAY_EXEC),
+       error = ima_path_check(path, acc_mode ?
+                              acc_mode & (MAY_READ | MAY_WRITE | MAY_EXEC) :
+                              ACC_MODE(flag) & (MAY_READ | MAY_WRITE),
                               IMA_COUNT_UPDATE);
+
        if (error)
                return error;
        /*