From: Kay Sievers Date: Fri, 16 Feb 2007 12:20:34 +0000 (+0100) Subject: apply format chars to ATTR before writing to sysfs X-Git-Tag: 174~2066 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=6e82f66ea263d432e483505566f8f13ae83f3ac5 apply format chars to ATTR before writing to sysfs --- diff --git a/udev_rules.c b/udev_rules.c index d1c3f042c..200b4e702 100644 --- a/udev_rules.c +++ b/udev_rules.c @@ -842,18 +842,20 @@ try_parent: if (pair->key.operation == KEY_OP_ASSIGN) { const char *key_name = key_pair_name(rule, pair); - const char *key_value = key_val(rule, &pair->key); char attr[PATH_SIZE]; + char value[NAME_SIZE]; FILE *f; strlcpy(attr, sysfs_path, sizeof(attr)); strlcat(attr, udev->dev->devpath, sizeof(attr)); strlcat(attr, "/", sizeof(attr)); strlcat(attr, key_name, sizeof(attr)); - dbg("write '%s' to '%s'", key_value, attr); + strlcpy(value, key_val(rule, &pair->key), sizeof(value)); + udev_rules_apply_format(udev, value, sizeof(value)); + info("writing '%s' to sysfs file '%s'", value, attr); f = fopen(attr, "w"); if (f != NULL) { - if (fprintf(f, "%s\n", key_value) <= 0) + if (fprintf(f, "%s", value) <= 0) err("error writing ATTR{%s}: %s", attr, strerror(errno)); fclose(f); } else