Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aee6f1cf authored by Gabriel de Perthuis's avatar Gabriel de Perthuis Committed by Linus Torvalds
Browse files

bcache: Strip endline when writing the label through sysfs



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: default avatarGabriel de Perthuis <g2p.code@gmail.com>
Signed-off-by: default avatarKent Overstreet <kmo@daterainc.com>
Cc: linux-stable <stable@vger.kernel.org> # >= v3.10
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 6d9d21e3
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -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,