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;
|