diff options
author | Mark Lord <lkml@rtr.ca> | 2008-03-28 19:05:25 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-03-30 17:55:49 -0400 |
commit | a9edadbf790d72adf6ebed476cb5caf7743e7e4a (patch) | |
tree | 168c9e70f2172e408514b643c2282a6c87744b24 /lib/kobject_uevent.c | |
parent | eb08b6b973cb91311431c6eea3cc232b97152a84 (diff) |
fix uevent action-string regression
Mark Lord wrote:
>
> On boot, syslog is flooded with "uevent: unsupported action-string;" messages.
..
> Mar 28 14:43:29 shrimp kernel: tty ptyqd: uevent: unsupported
> action-string; this will be ignored in a future kernel version
> Mar 28 14:43:29 shrimp kernel: tty ptyqe: uevent: unsupported
> action-string; this will be ignored in a future kernel version
> Mar 28 14:43:29 shrimp kernel: tty ptyqf: uevent: unsupported
> action-string; this will be ignored in a future kernel version
> Mar 28 14:43:29 shrimp kernel: tty ptyr0: uevent: unsupported
> action-string; this will be ignored in a future kernel version
..
These messages are a regression compared with 2.6.24, which did not
flood the syslog with them.
The actual underlying problem was introduced in 2.6.23, when somebody
made the string parsing no longer accept nul-terminated strings as a
valid input to store_uevent().
Eg. "add\0" was valid prior to 2.6.23, where the code regressed to
require "add" without the '\0'.
This patch fixes the 2.6.23 / 2.6.24 regressions, by having the code
once again tolerate the trailing '\0', if present.
According to GregKH, this mainly affects older Ubuntu systems, such as
the one I have here that requires this fix.
Signed-off-by: Mark Lord <mlord@pobox.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib/kobject_uevent.c')
-rw-r--r-- | lib/kobject_uevent.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c index 5a402e2982af..5b6d7f6956b9 100644 --- a/lib/kobject_uevent.c +++ b/lib/kobject_uevent.c | |||
@@ -55,7 +55,7 @@ int kobject_action_type(const char *buf, size_t count, | |||
55 | enum kobject_action action; | 55 | enum kobject_action action; |
56 | int ret = -EINVAL; | 56 | int ret = -EINVAL; |
57 | 57 | ||
58 | if (count && buf[count-1] == '\n') | 58 | if (count && (buf[count-1] == '\n' || buf[count-1] == '\0')) |
59 | count--; | 59 | count--; |
60 | 60 | ||
61 | if (!count) | 61 | if (!count) |