Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1566416 > unrolled thread
| Started by | SF Markus Elfring <elfring@users.sourceforge.net> |
|---|---|
| First post | 2017-01-25 10:40 +0100 |
| Last post | 2017-01-25 10:40 +0100 |
| Articles | 5 — 3 participants |
Back to article view | Back to linux.kernel
[PATCH 0/3] ima_fs: Fine-tuning for ima_write_policy() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-01-25 10:40 +0100
[PATCH 3/3] ima_fs: Move three error code assignments in ima_write_policy() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-01-25 10:40 +0100
Re: [PATCH 3/3] ima_fs: Move three error code assignments in ima_write_policy() Mimi Zohar <zohar@linux.vnet.ibm.com> - 2017-01-27 13:50 +0100
Re: [PATCH 3/3] ima_fs: Move three error code assignments in ima_write_policy() James Morris <jmorris@namei.org> - 2017-01-30 01:50 +0100
[PATCH 2/3] ima_fs: Reorder input parameter validation in ima_write_policy() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-01-25 10:40 +0100
| From | SF Markus Elfring <elfring@users.sourceforge.net> |
|---|---|
| Date | 2017-01-25 10:40 +0100 |
| Subject | [PATCH 0/3] ima_fs: Fine-tuning for ima_write_policy() |
| Message-ID | <t3sdA-8r2-37@gated-at.bofh.it> |
From: Markus Elfring <elfring@users.sourceforge.net> Date: Wed, 25 Jan 2017 10:20:30 +0100 A few update suggestions were taken into account from static source code analysis. Markus Elfring (3): One check less after error detection Reorder input parameter validation Move three error code assignments security/integrity/ima/ima_fs.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) -- 2.11.0
[toc] | [next] | [standalone]
| From | SF Markus Elfring <elfring@users.sourceforge.net> |
|---|---|
| Date | 2017-01-25 10:40 +0100 |
| Subject | [PATCH 3/3] ima_fs: Move three error code assignments in ima_write_policy() |
| Message-ID | <t3sdB-8r2-55@gated-at.bofh.it> |
| In reply to | #1566416 |
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 24 Jan 2017 22:47:07 +0100
A local variable was set to an error code in three cases before a concrete
error situation was detected. Thus move the corresponding assignments into
if branches to indicate a software failure there.
This issue was detected by using the Coccinelle software.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
security/integrity/ima/ima_fs.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/security/integrity/ima/ima_fs.c b/security/integrity/ima/ima_fs.c
index 98304411915d..a50c26f9772c 100644
--- a/security/integrity/ima/ima_fs.c
+++ b/security/integrity/ima/ima_fs.c
@@ -317,21 +317,24 @@ static ssize_t ima_write_policy(struct file *file, const char __user *buf,
/* No partial writes. */
result = -EINVAL;
- if (*ppos != 0)
+ if (*ppos != 0) {
+ result = -EINVAL;
goto reset_validity;
+ }
- result = -ENOMEM;
if (datalen >= PAGE_SIZE)
datalen = PAGE_SIZE - 1;
data = kmalloc(datalen + 1, GFP_KERNEL);
- if (!data)
+ if (!data) {
+ result = -ENOMEM;
goto reset_validity;
+ }
*(data + datalen) = '\0';
-
- result = -EFAULT;
- if (copy_from_user(data, buf, datalen))
+ if (copy_from_user(data, buf, datalen)) {
+ result = -EFAULT;
goto out_free;
+ }
result = mutex_lock_interruptible(&ima_write_mutex);
if (result < 0)
--
2.11.0
[toc] | [prev] | [next] | [standalone]
| From | Mimi Zohar <zohar@linux.vnet.ibm.com> |
|---|---|
| Date | 2017-01-27 13:50 +0100 |
| Subject | Re: [PATCH 3/3] ima_fs: Move three error code assignments in ima_write_policy() |
| Message-ID | <t4e8x-4cY-1@gated-at.bofh.it> |
| In reply to | #1566419 |
On Wed, 2017-01-25 at 10:34 +0100, SF Markus Elfring wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Tue, 24 Jan 2017 22:47:07 +0100
>
> A local variable was set to an error code in three cases before a concrete
> error situation was detected. Thus move the corresponding assignments into
> if branches to indicate a software failure there.
>
> This issue was detected by using the Coccinelle software.
This coding style was pretty common. I assume the compiler is smart
enough to do the right thing. Is this a FYI, letting us know for the
future the preferred coding style, or are we really upstreaming these
sorts of coding style changes?
Mimi
>
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> ---
> security/integrity/ima/ima_fs.c | 15 +++++++++------
> 1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/security/integrity/ima/ima_fs.c b/security/integrity/ima/ima_fs.c
> index 98304411915d..a50c26f9772c 100644
> --- a/security/integrity/ima/ima_fs.c
> +++ b/security/integrity/ima/ima_fs.c
> @@ -317,21 +317,24 @@ static ssize_t ima_write_policy(struct file *file, const char __user *buf,
>
> /* No partial writes. */
> result = -EINVAL;
> - if (*ppos != 0)
> + if (*ppos != 0) {
> + result = -EINVAL;
> goto reset_validity;
> + }
>
> - result = -ENOMEM;
> if (datalen >= PAGE_SIZE)
> datalen = PAGE_SIZE - 1;
> data = kmalloc(datalen + 1, GFP_KERNEL);
> - if (!data)
> + if (!data) {
> + result = -ENOMEM;
> goto reset_validity;
> + }
>
> *(data + datalen) = '\0';
> -
> - result = -EFAULT;
> - if (copy_from_user(data, buf, datalen))
> + if (copy_from_user(data, buf, datalen)) {
> + result = -EFAULT;
> goto out_free;
> + }
>
> result = mutex_lock_interruptible(&ima_write_mutex);
> if (result < 0)
[toc] | [prev] | [next] | [standalone]
| From | James Morris <jmorris@namei.org> |
|---|---|
| Date | 2017-01-30 01:50 +0100 |
| Subject | Re: [PATCH 3/3] ima_fs: Move three error code assignments in ima_write_policy() |
| Message-ID | <t58kp-5Er-1@gated-at.bofh.it> |
| In reply to | #1568335 |
On Fri, 27 Jan 2017, Mimi Zohar wrote: > On Wed, 2017-01-25 at 10:34 +0100, SF Markus Elfring wrote: > > From: Markus Elfring <elfring@users.sourceforge.net> > > Date: Tue, 24 Jan 2017 22:47:07 +0100 > > > > A local variable was set to an error code in three cases before a concrete > > error situation was detected. Thus move the corresponding assignments into > > if branches to indicate a software failure there. > > > > This issue was detected by using the Coccinelle software. > > This coding style was pretty common. I assume the compiler is smart > enough to do the right thing. Is this a FYI, letting us know for the > future the preferred coding style, or are we really upstreaming these > sorts of coding style changes? Nope, and I generally don't want cleanup patches from Markus going into the security tree. See also: https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1254425.html - James -- James Morris <jmorris@namei.org>
[toc] | [prev] | [next] | [standalone]
| From | SF Markus Elfring <elfring@users.sourceforge.net> |
|---|---|
| Date | 2017-01-25 10:40 +0100 |
| Subject | [PATCH 2/3] ima_fs: Reorder input parameter validation in ima_write_policy() |
| Message-ID | <t3sdB-8r2-49@gated-at.bofh.it> |
| In reply to | #1566416 |
From: Markus Elfring <elfring@users.sourceforge.net> Date: Tue, 24 Jan 2017 22:38:00 +0100 Move validation for the input parameter "ppos" to the beginning in this function so that a following check for the input parameter "datalen" can be occasionally avoided earlier. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- security/integrity/ima/ima_fs.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/security/integrity/ima/ima_fs.c b/security/integrity/ima/ima_fs.c index c1c8d34d111d..98304411915d 100644 --- a/security/integrity/ima/ima_fs.c +++ b/security/integrity/ima/ima_fs.c @@ -315,15 +315,14 @@ static ssize_t ima_write_policy(struct file *file, const char __user *buf, char *data; ssize_t result; - if (datalen >= PAGE_SIZE) - datalen = PAGE_SIZE - 1; - /* No partial writes. */ result = -EINVAL; if (*ppos != 0) goto reset_validity; result = -ENOMEM; + if (datalen >= PAGE_SIZE) + datalen = PAGE_SIZE - 1; data = kmalloc(datalen + 1, GFP_KERNEL); if (!data) goto reset_validity; -- 2.11.0
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web