char temp_value[NAME_SIZE];
const char *key_name = key_pair_name(rule, pair);
const char *value = key_val(rule, &pair->key);
- char *key_value;
/* make sure we don't write to the same string we possibly read from */
strlcpy(temp_value, value, sizeof(temp_value));
udev_rules_apply_format(udev, temp_value, NAME_SIZE);
- key_value = name_list_key_add(&udev->env_list, key_name, temp_value);
- if (key_value == NULL)
- break;
+ if (temp_value[0] == '\0') {
+ name_list_key_remove(&udev->env_list, key_name);
+ unsetenv(key_name);
+ info("unset ENV '%s'", key_name);
+ } else {
+ char *key_value = name_list_key_add(&udev->env_list, key_name, temp_value);
- putenv(key_value);
- dbg("export ENV '%s'", key_value);
+ if (key_value == NULL)
+ break;
+ putenv(key_value);
+ info("set ENV '%s'", key_value);
+ }
}
}