Patch "sysfs: make sure read buffer is zeroed" has been added to the 3.14-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    sysfs: make sure read buffer is zeroed

to the 3.14-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     sysfs-make-sure-read-buffer-is-zeroed.patch
and it can be found in the queue-3.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.


>From f5c16f29bf5e57ba4051fc7785ba7f035f798c71 Mon Sep 17 00:00:00 2001
From: Tejun Heo <tj@xxxxxxxxxx>
Date: Mon, 19 May 2014 15:52:10 -0400
Subject: sysfs: make sure read buffer is zeroed

From: Tejun Heo <tj@xxxxxxxxxx>

commit f5c16f29bf5e57ba4051fc7785ba7f035f798c71 upstream.

13c589d5b0ac ("sysfs: use seq_file when reading regular files")
switched sysfs from custom read implementation to seq_file to enable
later transition to kernfs.  After the change, the buffer passed to
->show() is acquired through seq_get_buf(); unfortunately, this
introduces a subtle behavior change.  Before the commit, the buffer
passed to ->show() was always zero as it was allocated using
get_zeroed_page().  Because seq_file doesn't clear buffers on
allocation and neither does seq_get_buf(), after the commit, depending
on the behavior of ->show(), we may end up exposing uninitialized data
to userland thus possibly altering userland visible behavior and
leaking information.

Fix it by explicitly clearing the buffer.

Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Reported-by: Ron <ron@xxxxxxxxxx>
Fixes: 13c589d5b0ac ("sysfs: use seq_file when reading regular files")
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
 fs/sysfs/file.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/fs/sysfs/file.c
+++ b/fs/sysfs/file.c
@@ -47,12 +47,13 @@ static int sysfs_kf_seq_show(struct seq_
 	ssize_t count;
 	char *buf;
 
-	/* acquire buffer and ensure that it's >= PAGE_SIZE */
+	/* acquire buffer and ensure that it's >= PAGE_SIZE and clear */
 	count = seq_get_buf(sf, &buf);
 	if (count < PAGE_SIZE) {
 		seq_commit(sf, -1);
 		return 0;
 	}
+	memset(buf, 0, PAGE_SIZE);
 
 	/*
 	 * Invoke show().  Control may reach here via seq file lseek even


Patches currently in stable-queue which might be from tj@xxxxxxxxxx are

queue-3.14/kernfs-add-back-missing-error-check-in-kernfs_fop_mmap.patch
queue-3.14/percpu-make-pcpu_alloc_chunk-use-pcpu_mem_free-instead-of-kfree.patch
queue-3.14/workqueue-make-rescuer_thread-empty-wq-maydays-list-before-exiting.patch
queue-3.14/device_cgroup-rework-device-access-check-and-exception-checking.patch
queue-3.14/sysfs-make-sure-read-buffer-is-zeroed.patch
queue-3.14/device_cgroup-check-if-exception-removal-is-allowed.patch
queue-3.14/pata_at91-fix-ata_host_activate-failure-handling.patch
queue-3.14/workqueue-fix-bugs-in-wq_update_unbound_numa-failure-path.patch
queue-3.14/workqueue-fix-a-possible-race-condition-between-rescuer-and-pwq-release.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]