[patch 03/29] i2c/eeprom: Hide Sony Vaio serial numbers

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Greg Kroah-Hartman
Date: Tuesday, November 20, 2007 - 11:23 am

2.6.23-stable review patch.  If anyone has any objections, please let us
know.

------------------
From: Jean Delvare <khali@linux-fr.org>

patch 0f2cbd38aa377e30df3b7602abed69464d1970aa in mainline.

The sysfs interface to DMI data takes care to not make the system
serial number and UUID world-readable, presumably due to privacy
concerns. For consistency, we should not let the eeprom driver
export these same strings to the world on Sony Vaio laptops.
Instead, only make them readable by root, as we already do for BIOS
passwords.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 drivers/i2c/chips/eeprom.c |   23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

--- a/drivers/i2c/chips/eeprom.c
+++ b/drivers/i2c/chips/eeprom.c
@@ -128,13 +128,20 @@ static ssize_t eeprom_read(struct kobjec
 	for (slice = off >> 5; slice <= (off + count - 1) >> 5; slice++)
 		eeprom_update_client(client, slice);
 
-	/* Hide Vaio security settings to regular users (16 first bytes) */
-	if (data->nature == VAIO && off < 16 && !capable(CAP_SYS_ADMIN)) {
-		size_t in_row1 = 16 - off;
-		in_row1 = min(in_row1, count);
-		memset(buf, 0, in_row1);
-		if (count - in_row1 > 0)
-			memcpy(buf + in_row1, &data->data[16], count - in_row1);
+	/* Hide Vaio private settings to regular users:
+	   - BIOS passwords: bytes 0x00 to 0x0f
+	   - UUID: bytes 0x10 to 0x1f
+	   - Serial number: 0xc0 to 0xdf */
+	if (data->nature == VAIO && !capable(CAP_SYS_ADMIN)) {
+		int i;
+
+		for (i = 0; i < count; i++) {
+			if ((off + i <= 0x1f) ||
+			    (off + i >= 0xc0 && off + i <= 0xdf))
+				buf[i] = 0;
+			else
+				buf[i] = data->data[off + i];
+		}
 	} else {
 		memcpy(buf, &data->data[off], count);
 	}
@@ -208,7 +215,7 @@ static int eeprom_detect(struct i2c_adap
 
 		if (!memcmp(name, "PCG-", 4) || !memcmp(name, "VGN-", 4)) {
 			dev_info(&new_client->dev, "Vaio EEPROM detected, "
-				"enabling password protection\n");
+				 "enabling privacy protection\n");
 			data->nature = VAIO;
 		}
 	}

-- 
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[patch 00/29] 2.6.23-stable review, Greg Kroah-Hartman, (Tue Nov 20, 11:22 am)
[patch 01/29] i2c-pasemi: Fix NACK detection, Greg Kroah-Hartman, (Tue Nov 20, 11:23 am)
[patch 02/29] i2c/eeprom: Recognize VGN as a valid Sony Va ..., Greg Kroah-Hartman, (Tue Nov 20, 11:23 am)
[patch 03/29] i2c/eeprom: Hide Sony Vaio serial numbers, Greg Kroah-Hartman, (Tue Nov 20, 11:23 am)
[patch 04/29] drivers/video/ps3fb: fix memset size error, Greg Kroah-Hartman, (Tue Nov 20, 11:23 am)
[patch 06/29] raid5: fix unending write sequence, Greg Kroah-Hartman, (Tue Nov 20, 11:23 am)
[patch 07/29] knfsd: fix spurious EINVAL errors on first a ..., Greg Kroah-Hartman, (Tue Nov 20, 11:23 am)
[patch 08/29] nfsd4: recheck for secure ports in fh_verify, Greg Kroah-Hartman, (Tue Nov 20, 11:23 am)
[patch 09/29] dmaengine: fix broken device refcounting, Greg Kroah-Hartman, (Tue Nov 20, 11:23 am)
[patch 10/29] x86: disable preemption in delay_tsc(), Greg Kroah-Hartman, (Tue Nov 20, 11:23 am)
[patch 11/29] reiserfs: dont drop PG_dirty when releasing ..., Greg Kroah-Hartman, (Tue Nov 20, 11:23 am)
[patch 13/29] libata: sata_sis: use correct S/G table size, Greg Kroah-Hartman, (Tue Nov 20, 11:23 am)
[patch 12/29] sata_sis: fix SCR read breakage, Greg Kroah-Hartman, (Tue Nov 20, 11:24 am)
[patch 15/29] Fix divide-by-zero in the 2.6.23 scheduler code, Greg Kroah-Hartman, (Tue Nov 20, 11:24 am)
[patch 16/29] geode: Fix not inplace encryption, Greg Kroah-Hartman, (Tue Nov 20, 11:24 am)
[patch 17/29] libcrc32c: keep intermediate crc state in cp ..., Greg Kroah-Hartman, (Tue Nov 20, 11:24 am)
[patch 18/29] i386: avoid temporarily inconsistent pte-s, Greg Kroah-Hartman, (Tue Nov 20, 11:24 am)
[patch 19/29] x86: fix off-by-one in find_next_zero_string, Greg Kroah-Hartman, (Tue Nov 20, 11:24 am)
[patch 20/29] x86: mark read_crX() asm code as volatile, Greg Kroah-Hartman, (Tue Nov 20, 11:24 am)
[patch 22/29] x86: return correct error code from child_ri ..., Greg Kroah-Hartman, (Tue Nov 20, 11:24 am)
[patch 23/29] ntp: fix typo that makes sync_cmos_clock erratic, Greg Kroah-Hartman, (Tue Nov 20, 11:24 am)
[patch 24/29] x86: fix freeze in x86_64 RTC update code in ..., Greg Kroah-Hartman, (Tue Nov 20, 11:24 am)
[patch 25/29] softlockup watchdog fixes and cleanups, Greg Kroah-Hartman, (Tue Nov 20, 11:24 am)
[patch 26/29] softlockup: use cpu_clock() instead of sched ..., Greg Kroah-Hartman, (Tue Nov 20, 11:25 am)
[patch 27/29] USB: unusual_devs modification for Nikon D200, Greg Kroah-Hartman, (Tue Nov 20, 11:25 am)
[patch 28/29] USB: Nikon D40X unusual_devs entry, Greg Kroah-Hartman, (Tue Nov 20, 11:25 am)
Re: [patch 00/29] 2.6.23-stable review, Greg Kroah-Hartman, (Tue Nov 20, 11:29 am)