path = strjoina(syspath, "/uevent");
r = read_full_file(path, &uevent, &uevent_len);
- if (r < 0) {
+ if (r == -EACCES)
+ /* empty uevent files may be write-only */
+ return 0;
+ else if (r < 0) {
log_debug("sd-device: failed to read uevent file '%s': %s", path, strerror(-r));
return r;
}
value_len = strlen(_value);
/* drop trailing newlines */
- while (value_len > 0 && _value[--value_len] == '\n')
- _value[value_len] = '\0';
+ while (value_len > 0 && _value[value_len - 1] == '\n')
+ _value[--value_len] = '\0';
/* value length is limited to 4k */
if (value_len > 4096)