diff options
Diffstat (limited to 'recipes/sysfsutils/sysfsutils-1.2.0/libsysfs-write-attribute.patch')
-rw-r--r-- | recipes/sysfsutils/sysfsutils-1.2.0/libsysfs-write-attribute.patch | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/recipes/sysfsutils/sysfsutils-1.2.0/libsysfs-write-attribute.patch b/recipes/sysfsutils/sysfsutils-1.2.0/libsysfs-write-attribute.patch new file mode 100644 index 0000000000..447d90f588 --- /dev/null +++ b/recipes/sysfsutils/sysfsutils-1.2.0/libsysfs-write-attribute.patch @@ -0,0 +1,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; |