projects
/
kernel
/
kernel-generic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
6d9d21e
)
bcache: Strip endline when writing the label through sysfs
author
Gabriel de Perthuis
<g2p.code@gmail.com>
Tue, 24 Sep 2013 06:17:28 +0000
(23:17 -0700)
committer
Linus Torvalds
<torvalds@linux-foundation.org>
Tue, 24 Sep 2013 21:41:43 +0000
(14:41 -0700)
sysfs attributes with unusual characters have crappy failure modes
in Squeeze (udev 164); later versions of udev are unaffected.
This should make these characters more unusual.
Signed-off-by: Gabriel de Perthuis <g2p.code@gmail.com>
Signed-off-by: Kent Overstreet <kmo@daterainc.com>
Cc: linux-stable <stable@vger.kernel.org> # >= v3.10
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/md/bcache/sysfs.c
patch
|
blob
|
history
diff --git
a/drivers/md/bcache/sysfs.c
b/drivers/md/bcache/sysfs.c
index
4fe6ab2
..
924dcfd
100644
(file)
--- a/
drivers/md/bcache/sysfs.c
+++ b/
drivers/md/bcache/sysfs.c
@@
-223,8
+223,13
@@
STORE(__cached_dev)
}
if (attr == &sysfs_label) {
- /* note: endlines are preserved */
- memcpy(dc->sb.label, buf, SB_LABEL_SIZE);
+ if (size > SB_LABEL_SIZE)
+ return -EINVAL;
+ memcpy(dc->sb.label, buf, size);
+ if (size < SB_LABEL_SIZE)
+ dc->sb.label[size] = '\0';
+ if (size && dc->sb.label[size - 1] == '\n')
+ dc->sb.label[size - 1] = '\0';
bch_write_bdev_super(dc, NULL);
if (dc->disk.c) {
memcpy(dc->disk.c->uuids[dc->disk.id].label,