summaryrefslogtreecommitdiff
path: root/packages/sysfsutils/sysfsutils-1.2.0/libsysfs-write-attribute.patch
blob: 447d90f5885e0d6e5cc757e56c776a759a5e0b19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Hi,

int sysfs_write_attribute(struct sysfs_attribute *sysattr,
                const char *new_value, size_t len)

has a problematic "feature": if the file is empty but readable, nothing gets
written into it. The attached patch (untested) should fix it.

	Dominik


The check which tests whether the value to be written into a sysfs attribute
is already there should only trigger if the length of both strings is the
same.

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>

--- sysfsutils-1.2.0/lib/sysfs_dir.c.original	2005-02-21 08:10:33.000000000 +0100
+++ sysfsutils-1.2.0/lib/sysfs_dir.c	2005-02-21 08:14:01.000000000 +0100
@@ -194,7 +194,8 @@
 			dprintf("Error reading attribute\n");
 			return -1;
 		}
-		if ((strncmp(sysattr->value, new_value, sysattr->len)) == 0) {
+		if (((strncmp(sysattr->value, new_value, sysattr->len)) == 0)&&
+		    (len == sysattr->len)) {
 			dprintf("Attr %s already has the requested value %s\n",
 					sysattr->name, new_value);
 			return 0;