2008-11-17 07:39:25

by Qinghuang Feng

[permalink] [raw]
Subject: [PATCH] fs/binfmt_misc.c: let binfmt status be more readable

The following is what it looks like before patching.
It is not much readable.

user@ubuntu:/proc/sys/fs/binfmt_misc$ cat status
enableduser@ubuntu:/proc/sys/fs/binfmt_misc$

Signed-off-by: Qinghuang Feng <[email protected]>
---
diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c
index f2744ab..72e8b24 100644
--- a/fs/binfmt_misc.c
+++ b/fs/binfmt_misc.c
@@ -652,7 +652,7 @@ static const struct file_operations bm_register_operations = {
static ssize_t
bm_status_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos)
{
- char *s = enabled ? "enabled" : "disabled";
+ char *s = enabled ? "enabled\n" : "disabled\n";

return simple_read_from_buffer(buf, nbytes, ppos, s, strlen(s));
}


2008-11-19 00:37:09

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] fs/binfmt_misc.c: let binfmt status be more readable

On Mon, 17 Nov 2008 15:38:16 +0800
Qinghuang Feng <[email protected]> wrote:

> The following is what it looks like before patching.
> It is not much readable.
>
> user@ubuntu:/proc/sys/fs/binfmt_misc$ cat status
> enableduser@ubuntu:/proc/sys/fs/binfmt_misc$
>
> Signed-off-by: Qinghuang Feng <[email protected]>
> ---
> diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c
> index f2744ab..72e8b24 100644
> --- a/fs/binfmt_misc.c
> +++ b/fs/binfmt_misc.c
> @@ -652,7 +652,7 @@ static const struct file_operations bm_register_operations = {
> static ssize_t
> bm_status_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos)
> {
> - char *s = enabled ? "enabled" : "disabled";
> + char *s = enabled ? "enabled\n" : "disabled\n";
>
> return simple_read_from_buffer(buf, nbytes, ppos, s, strlen(s));
> }

Well. That's a bugfix, really.

It fixes a bug which has been there for a very long time, in a way
which is non-backward-compatible.

Are there existing applications out there which will disastrously fail
if we add a newline to the /proc/sys/fs/binfmt_misc/status contents? I
somehow doubt it. But we shall find out :)